2010-12-31  Janus Weil  <janus@gcc.gnu.org>

	* intrinsic.texi (IANY): Correct section title.
	(IALL, IANY, IPARITY): Fix example codes.

2010-12-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47065
	* frontend-passes.c (count_arglist):  Static variable to
	count the nesting of argument lists.
	(optimize_code):  Set count_arglist to 1 if within a call
	statement, to 0 otherwise.
	(optimize_trim):  New function.
	(optimize_expr):  Adjust count_arglist.  Call optimize_trim.

2010-12-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45338
	* resolve.c (resolve_operator):  Mark function for user-defined
	operator as referenced.

2010-12-31  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46971
	* gfortran.h (gfc_hash_value): Add prototype.
	* class.c (get_unique_type_string): Check if proc_name is present and
	make sure string contains an underscore.
	(get_unique_hashed_string): New function which creates a hashed string
	if the given unique string is too long.
	(gfc_hash_value): Moved here from decl.c, renamed and simplified.
	(gfc_build_class_symbol, gfc_find_derived_vtab): Use hashed strings.
	* decl.c (hash_value): Moved to class.c.
	(gfc_match_derived_decl): Renamed 'hash_value'.

2010-12-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47085
	* match.c (gfc_match_allocate): Check for 'class_ok'.
	* primary.c (gfc_match_varspec): Ditto.

2010-12-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump_parse_tree.c (show_components):  Show
	ALLOCATABLE.

2010-12-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46838
	* expr.c (gfc_default_initializer): Handle allocatable CLASS components.

2010-12-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (gfc_code_walker): Handle expressions
	in EXEC_CALL, EXEC_ASSIGN_CALL and EXEC_CALL_PPC.
	Separate cases in switch statements by blank lines.

2010-12-28  Janus Weil  <janus@gcc.gnu.org>
	    Daniel Franke  <dfranke@gcc.gnu.org>

	PR fortran/45827
	* module.c (mio_component_ref): Handle components of CLASS variables.

2010-12-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.c (show_typespec):  Also show character kind.

2010-12-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/31821
	* check.c (gfc_var_strlen):  New function, also including
	substring references.
	(gfc_check_same_strlen):  Use gfc_var_strlen.

2010-12-23  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/46978
	Revert part of revision 164112
	* trans-array.c (gfc_trans_create_temp_array):
	Set loop n'th upper bound from (possibly transposed) array's dim bounds.

2010-12-18  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46974
	* target-memory.c (gfc_interpret_derived): Handle C_PTR/C_FUNPTR.
	* trans-expr.c (gfc_trans_structure_assign): Ditto.
	(gfc_conv_expr): Avoid crashes using non-C_NULL_(FUN)PTR const expr.

2010-12-17  Janus Weil  <janus@gcc.gnu.org>
	    Tobias Burnus <burnus@gcc.gnu.org>

	PR fortran/46849
	* resolve.c (resolve_symbol): Remove symbols that wrongly ended up
	in a local BLOCK namespace.

2010-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/46945
	* trans-array.c (gfc_array_init_size): Perform stride overflow
	checking and multiplication by element_size in size_type_node instead
	of sizetype, return value with size_type_node type instead of
	sometimes with sizetype and sometimes with gfc_array_index_type.

2010-12-15  Janne Blomqvist  <jb@gcc.gnu.org>

	* trans.c (gfc_allocate_with_status): Better error message for
	malloc() failure.
	(gfc_call_realloc): Likewise.
	* misc.c (gfc_getmem): Likewise.

2010-12-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/28105
	* trans.c (gfc_call_malloc): Improve comment.
	(gfc_allocate_with_status): Remove size < 0 check.
	(gfc_call_realloc): Likewise.

2010-12-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46937
	* trans-types.c (create_fn_spec): "."-annotate derived types
	with (proc-)pointer components.

2010-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/46874
	* trans-openmp.c (gfc_trans_omp_array_reduction): Handle allocatable
	dummy variables.

2010-12-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46201
	* trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
	components called on a dimensionful base object.

2010-12-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46841
	* trans-expr.c (gfc_trans_subcomponent_assign): Handle array-valued
	procedure pointer components.

2010-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/46884
	* symbol.c (gfc_new_charlen): If old_cl is non-NULL, put it
	at the ns->old_cl_list spot in the chain rather than at
	ns->cl_list.

2010-12-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.c (show_expr): Add space for parens.

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

	PR fortran/46809
	* resolve.c (resolve_select_type): Set the location of the first
	argument when generating the EXTENDS_TYPE_OF call.

2010-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46705
	* gfortran.h: New enum gfc_instring.
	(gfc_next_char_literal): Update prototype.
	* scanner.c (gfc_next_char_literal): Use new enum. Only give missing
	'&' warning for INSTRING_WARN. (gfc_next_char): Use new enum.
	(gfc_gobble_whitespace): Likewise.
	* io.c (next_char): Use new enum. (next_char_not_space): Likewise.
	(format_lex): Likewise.
	* match.c (gfc_match_parens): Likewise.
	(gfc_match_special_char): Likewise. (gfc_match_name_C): Likewise.
	* parse.c (next_fixed): Likewise.
	* primary.c (match_hollerith_constant): Likewise.
	(next_string_char): Likewise.

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

	PR fortran/46370
	* primary.c (gfc_match_varspec): Pass information about codimension
	to gfc_match_array_ref also for BT_CLASS.
	* resolve.c (resolve_procedure): Correct check for C612.

2010-12-11  Mikael Morin   <mikael@gcc.gnu.org>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46842
	* trans-array.c (dim_ok): New helper function.
	(gfc_conv_expr_descriptor): Use new helper function to check
	function array is full.

2010-12-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46540
	* trans-types.c (gfc_init_kinds): Handle
	--disable-libquadmath-support.

2010-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* check.c (gfc_check_sngl): Insert missing space in error message.

2010-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* check.c (gfc_check_float): Insert missing space in error message.

2010-12-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/44352
	* trans-expr.c (gfc_string_to_single_character): Return if not
	POINTER_TYPE_P.
	(gfc_trans_string_copy): gfc_build_addr_expr if src or dest is
	not a pointer.
	(gfc_trans_string_copy): Make sure the argument string type
	has a string length, fix indention, and remove not needed
	gfc_build_addr_expr.

2010-12-04  Daniel Kraft  <d@domob.eu>

	PR fortran/46794
	* trans-expr.c (gfc_conv_power_op): Handle kind of result expression
	correctly for integer kind 1 and 2 operands.

2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/44352
	* dump-parse-tree.c (show_symbol):  Don't show formal namespace
	for statement functions in order to avoid infinite recursion.

2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (check_section_vs_section):  Pre-calculate
	the relationship between the strides and the relationship
	between the start values.  Use an integer constant one for
	that purpose.
	Forward dependencies for positive strides apply for where
	the lhs start <= rhs start and lhs stride <= rhs stride
	and vice versa for negative stride.  No need to compare
	end expressions in either case (assume no bounds violation).

2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* trans-array.c (gfc_could_be_alias):  Handle BT_CLASS
	as well as BT_DERIVED.
	(gfc_array_allocate):  Likewise.
	(gfc_conv_array_parameter):  Likewise.
	(structure_alloc_comps):  Likewise.
	(gfc_is_reallocatable_lhs):  Likewise.
	(gfc_trans_deferred_array):  Likewise.

2010-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/46753
	* trans-openmp.c (gfc_trans_omp_do): Use build2_loc instead of
	fold_build2_loc for OMP_FOR conditions.

2010-11-30  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/28105
	* trans-array.c (gfc_unlikely): Helper function to mark boolean
	expr as unlikely.
	(gfc_array_index_size): Check whether the size overflows.
	(gfc_array_allocate): Check whether size overflows and generate
	error.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* trans-common.c: Don't include toplev.h.

2010-11-29  Joseph Myers  <joseph@codesourcery.com>

	* gfortran.h (alloca): Don't include definitions.
	(NULL): Don't define.

2010-11-28  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46662
	* resolve.c (update_ppc_arglist): Add check for abstract passed object.

2010-11-28  Paul Thomas  <pault@gcc.gnu.org>

	 PR fortran/35810
	* trans-array.c (gfc_trans_array_constructor): If the loop->to
	is a VAR_DECL, assume this is dynamic. In this case, use the
	counter to obtain the value and set loop->to appropriately.
	(gfc_conv_ss_descriptor): Always save the offset of a variable
	in info.saved_offset.
	(gfc_conv_ss_startstride): Do not attempt bound checking of the
	lhs of an assignment, if allocatable and f2003 is allowed.
	(gfc_conv_loop_setup): If possible, do not use an allocatable
	lhs variable for the loopspec.
	(gfc_is_reallocatable_lhs): New function.
	(get_std_lbound): New function.
	(gfc_alloc_allocatable_for_assignment): New function.
	* gfortran.h : Add flag_realloc_lhs to the options structure.
	* lang.opt : Add option f(no-)realloc-lhs.
	* invoke.texi : Document option f(no-)realloc-lhs.
	* options.c (gfc_init_options, gfc_post_options,
	gfc_handle_option): Incorporate f(no-)realloc-lhs with default
	to frealloc_lhs for -std > f95.
	* trans-array.h : Add primitive for previous.
	* trans-expr.c (gfc_conv_string_length): Return if character
	length is a variable and the expression is NULL.
	(gfc_conv_procedure_call): If the call is of the kind x = f(...)
	and the lhs is allocatable and reallocation on assignment OK,
	call gfc_alloc_allocatable_for_assignment. Do not generate the
	function call unless direct by reference.
	(realloc_lhs_loop_for_fcn_call): New function.
	(realloc_lhs_bounds_for_intrinsic_call): New function.
	(gfc_trans_arrayfunc_assign): Reallocation assignments need
	a loopinfo and for the loop bounds to be set.  With intrinsic
	functions, free the lhs data and let the library allocate the
	data array. Done by the new functions above.
	(gfc_trans_assignment_1): If the lhs is allocatable and
	reallocation on assignment is allowed, mark the lhs and use
	gfc_alloc_allocatable_for_assignment to make the reallocation.
	* trans.h : Add is_alloc_lhs bitfield to gfc_ss structure.

2010-11-27  Tobias Burnus  <burnus@net-b.de>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46678
	trans-decl.c (gfc_trans_auto_character_variable): Use gfc_init_block
	instead of gfc_start_block.

2010-11-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46301
	trans-expr.c (gfc_trans_assignment): Add error message for not
	implemented assignment to deferred-length character variable.

2010-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/45700
	* trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
	build4_stat_loc): Removed.
	(build1_loc, build2_loc, build3_loc, build4_loc): Removed.

2010-11-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46581
	* trans.h (gfc_process_block_locals): Removed second argument.
	* trans-decl.c (trans_associate_var): Moved to trans-stmt.c.
	(gfc_trans_deferred_vars): Skip ASSOCIATE variables.
	(gfc_process_block_locals): Don't mark associate names to be
	initialized.
	* trans-stmt.c (trans_associate_var): Moved here from trans-decl.c.
	(gfc_trans_block_construct): Call 'trans_associate_var' from here
	to make sure SELECT TYPE with associate-name is treated correctly.

2010-11-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46638
	* target-memory.c (gfc_interpret_derived): Correctly handle
	component offset.

2010-11-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46545
	* gfortran.texi (KIND Type Parameters): Quadmath and F2008 changes.

2010-11-22  Michael Matz  <matz@suse.de>

	* gfortranspec.c (library): New global, moved from ...
	(lang_specific_driver): ... here.
	(lang_specific_pre_link): Test it here before including
	libgfortran.spec.

2010-11-21  Michael Matz  <matz@suse.de>
	    Tobias Burnus  <burnus@net-b.de>

	PR driver/46516
	* gfortranspec.c (lang_specific_driver,
	lang_specific_pre_link): Load libgfortran.spec in
	lang_specific_pre_link unless found in the -L path.

2010-11-20  Janne Blomqvist  <jb@gcc.gnu.org>

	* f95-lang.c (gfc_init_decl_processing): Set size_type_node as
	unsigned int of pointer size and set sizetype based on that.
	* trans-types.c (gfc_init_types): Don't set size_type_node to an
	unsigned type.

2010-11-17  Joseph Myers  <joseph@codesourcery.com>

	* f95-lang.c (gfc_be_parse_file): Take no arguments.

2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32049
	* gfortranspec.c (find_spec_file): New function.
	(lang_specific_driver): Try to find .spec file and use it.
	* trans-io.c (iocall): Define IOCALL_X_REAL128/COMPLEX128(,write).
	(gfc_build_io_library_fndecls): Build decl for __float128 I/O.
	(transfer_expr): Call __float128 I/O functions.
	* trans-types.c (gfc_init_kinds): Allow kind-16 belonging
	to __float128.

2010-11-15  Tobias Burnus  <burnus@net.b.de>

	PR fortran/46484
	* check.c (variable_check): Don't treat functions calls as variables;
	optionally accept function themselves.
	(gfc_check_all_any, gfc_check_loc, gfc_check_move_alloc,
	gfc_check_null, gfc_check_present, gfc_check_cpu_time,
	gfc_check_date_and_time, gfc_check_mvbits, gfc_check_random_number,
	gfc_check_random_seed, gfc_check_system_clock,
	gfc_check_dtime_etime, gfc_check_dtime_etime_sub,
	gfc_check_itime_idate,gfc_check_ltime_gmtime): Update call.

2010-11-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45742
	* trans-common.c (build_field): Add TREE_SIDE_EFFECTS for volatile.
	* trans-decl.c (gfc_finish_var_decl): Ditto.
	(create_function_arglist): Handle volatile dummy arguments.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (gfortranspec.o): Use $(OPTS_H).
	* gfortran.h (gfc_handle_option): Take location_t parameter.
	* options.c (gfc_handle_option): Take location_t parameter.

2010-11-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/45794
	trans-expr.c (gfc_conv_procedure_call): Avoid NULL array spec.
	
2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/44782
	* options.c (gfc_post_options): Initialize gfc_option.max_errors.
	(gfc_handle_option) [OPT_fmax_errors_]: Remove.
	* lang.opt (fmax-errors=): Remove.

2010-11-11  Steven G. Kargl <kargl@gcc.gnu.org>

	* symbol.c (verify_bind_c_derived_type):  Accept BIND(C) on an empty
	derived type.

2010-11-11  Jan Hubicka  <jh@suse.cz>

	* options.c (gfc_post_options): Remove flag_whopr.

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

	PR fortran/46413
	* resolve.c (resolve_transfer): Reject I/O transfer of
	polymorphic type.

	PR fortran/46205
	* resolve.c (resolve_code): Reject nonscalar FORALL masks.

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

	* resolve.c (resolve_procedure_interface): Copy 'is_bind_c' attribute.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* trans-array.c (gfc_trans_deferred_array): Use "front-end"
	spelling in diagnostic.
	* trans.c (gfc_allocate_array_with_status): Add missing space in
	diagnostic.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* cpp.c (asm_file_name): Don't declare here.

2010-11-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46411
	* intrinsic.c (gfc_intrinsic_sub_interface): Check for attr.pure
	and not for attr.elemental.
	* intrinsic.texi (move_alloc): Document as being pure.

2010-11-10  Tobias Burnus <burnus@net-b.de>

	PR fortran/46244
	* resolve.c (resolve_fl_derived): Don't allow CLASS in
	sequence/BIND(C) types.

2010-11-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Mikael Morin   <mikael@gcc.gnu.org>

	PR fortran/46331
	* intrinsic.c: Correctly set the pure attributes for intrinsic
	functions.
	* expr.c (check_specification_function): Remove this function and move
	its code into gfc_is_constant_expr. (gfc_is_constant_expr): Change the
	order of checks by checking for non-constant arguments first.  Then,
	check for initialization functions, followed by intrinsics.

2010-11-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46313
	* gfortran.h (gfc_add_data_component,gfc_add_vptr_component,
	gfc_add_hash_component,gfc_add_size_component,
	gfc_add_def_init_component): New macros.
	* class.c (gfc_add_component_ref): Renamed data component.
	(get_unique_type_string): New function.
	(gfc_build_class_symbol): Use 'get_unique_type_string' to construct
	uniques names for the class containers. Rename components.
	(gfc_find_derived_vtab): Use 'get_unique_type_string' to construct
	uniques names for the vtab symbols. Rename components.
	* decl.c (attr_decl1): Renamed class container components.
	* iresolve.c (gfc_resolve_extends_type_of): Ditto.
	* match.c (select_type_set_tmp): Renamed temporaries.
	* module.c (read_module): Renamed vtab and vtype symbols.
	* resolve.c (resolve_structure_cons,resolve_typebound_function,
	resolve_typebound_subroutine,resolve_deallocate_expr,
	resolve_select_type,resolve_fl_derived): Renamed class container and
	vtab components.
	* trans-array.c (structure_alloc_comps): Ditto.
	* trans-decl.c (gfc_trans_deferred_vars): Ditto.
	* trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure,
	gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof,
	gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated,
	gfc_conv_same_type_as): Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43899
	* trans-decl.c (generate_local_decl): Do not generate unused warning
	for variables in namelists.

2010-11-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46344
	* decl.c (build_struct): Build vtab immediately if derived type
	has already been declared.

2010-11-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46344
	* trans-types.c (gfc_copy_dt_decls_ifequal): Handle CLASS components.

2010-11-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46330
	* trans-expr.c (gfc_trans_class_assign): Find 'vtab' symbol in correct
	namespace.

2010-11-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45451
	PR fortran/46174
	* class.c (gfc_find_derived_vtab): Improved search for existing vtab.
	Add component '$copy' to vtype symbol for polymorphic deep copying.
	* expr.c (gfc_check_pointer_assign): Make sure the vtab is generated
	during resolution stage.
	* resolve.c (resolve_codes): Don't resolve code if namespace is already
	resolved.
	* trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for
	polymorphic ALLOCATE statements with SOURCE.

2010-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
	    Paul Thomas  <pault@gcc.gnu.org>

	* dump-parse-tree.c (code_indent):  Take label into acount
	when calculating indent.
	(show_typespec):  Also display class.
	(show_attr):  Add module name to argument.
	Don't show UNKNOWN for flavor, access and save. Don't show
	SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
	association.  Show intent only for dummy arguments.
	Set length of shown symbol names to minimum of 12.
	Show attributes header.
	(show_symbol):  Adjust show_level.
	(show_symtree):  Clear up display for ambiguous.  Show if symbol
	was imported from namespace.
	(show_code_node):  Clear up indenting.  Traverse symtree and
	show code directly instead of calling show_namespace.

2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-decl.c (add_argument_checking): Use build_zero_cst instead of
	fold_convert.
	* trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
	* trans-stmt.c (gfc_trans_do): Likewise.

2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/45170
	* array.c (gfc_match_array_constructor): Reject deferred type
	parameter (DTP) in type-spec.
	* decl.c (char_len_param_value, match_char_length,
	gfc_match_char_spec, build_sym, variable_decl,
	enumerator_decl): Support DTP.
	* expr.c (check_inquiry): Fix check due to support for DTP.
	* gfortran.h (gfc_typespec): Add Boolean 'deferred'.
	* misc.c (gfc_clear_ts): Set it to false.
	* match.c (gfc_match_allocate): Support DTP.
	* resolve.c (resolve_allocate_expr): Not-implemented error for DTP.
	(resolve_fl_variable): Add DTP constraint check.
	* trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
	error for DTP.

2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/46152
	* fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
	with a gfc_find_symbol to prevent namespace pollution.  Remove dead
	code.
	(match_type_spec): Remove parsing of '::'.  Collapse character
	kind checking to one location.
	(gfc_match_allocate): Use correct locus in error message.

2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.h (gfc_option_t):  Replace dump_parse_tree by
	dump_fortran_original and add dump_fortran_optimized.
	* lang.opt: Add fdump-fortran-original and
	fdump-fortran-optimized.  Document that fdump-parse-tree is
	deprecated.
	* gfortran.texi: Add -fdump-fortran-original and
	-fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
	* frontend-passes.c (gfc_run_passes):  If optimizing and
	if gfc_option.dump_fortran_optimized is set, dump the parse tree
	after optimization.
	* parse.c:  Rename gfc_option.dump_parse_tree to
	gfc_option.dump_fortran_original.
	* options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original and handle
	gfc_option.dump_fortran_optimize.
	(gfc_post_options): Rename gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original.
	(gfc_handle_option):  Rename OPT_fdump_parse_tree to
	OPT_fdump_fortran_original and gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original.  Handle
	OPT_fdump_fortran_optimized.

2010-10-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44917
	PR fortran/44926
	PR fortran/46196
	* interface.c (count_types_test): Symmetrize type check.
	(generic_correspondence): Ditto.

2010-10-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46161
	* interface.c (compare_allocatable): Handle polymorphic allocatables.
	(compare_parameter): Add two error messages for polymorphic dummies.

2010-10-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42647
	* trans.h (gfc_deallocate_scalar_with_status): New prototype.
	* trans.c (gfc_deallocate_scalar_with_status): New function for
	deallocation of allocatable scalars.
	* trans-array.c (structure_alloc_comps): Call it here ...
	* trans-decl.c (gfc_trans_deferred_vars): ... here ...
	* trans-stmt.c (gfc_trans_deallocate): ... and here.

2010-10-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45451
	* trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.

	PR fortran/43018
	* trans-array.c (duplicate_allocatable): Use size of type and not
	the size of the pointer to the type.

2010-10-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/46140
	* fortran/scanner.c (include_line): Check return value of load_file.

2010-10-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46122
	* expr.c (gfc_check_vardef_context): Fix PROTECTED check.

2010-10-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46060
	* match.h (gfc_matching_ptr_assignment): New global variable to indicate
	we're currently matching a (non-proc-)pointer assignment.
	* decl.c (match_pointer_init): Set it.
	* match.c (gfc_match_pointer_assignment): Ditto.
	* primary.c (matching_actual_arglist): New global variable to indicate
	we're currently matching an actual argument list.
	(gfc_match_actual_arglist): Set it.
	(gfc_match_varspec): Reject procedure pointer component calls with
	missing argument list.

2010-10-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46067
	* interface.c (gfc_compare_interfaces): Switch arguments of type
	comparison (important for polymorphic variables).

2010-10-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46100
	* expr.c (gfc_check_vardef_context): Treat pointer functions
	as variables.

2010-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46079
	* trans_stmt.c (gfc_trans_stop): Fix whitespace.  Build a call to new
	F08 numeric stop function.
	* trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
	* trans-decl.c (gfc_build_builtin_function_decls): Build declaration
	for stop_numeric_f08.

2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.h: Remove definition of bt enumerator.
	* libgfortran.h: Add bt enumerator type alighned with defintion.
	Remove the dtype enumerator, no longer used.
	previously given in libgfortran/io.h
	* trans-types.c: Use new bt enumerator.
	* trans-io.c: Likewise.

2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* trans-io.c (gfc_build_io_library_fndecls):
	Array descriptor arguments to transfer_array can be
	dereferenced recursively.

2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/20165
	PR fortran/31593
	PR fortran/43665
	* trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
	IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
	IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
	IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
	(gfc_build_io_library_fndecls):  Add corresponding function
	decls.
	(transfer_expr):  If the current transfer is a READ, use
	the iocall with the original version, otherwise the version
	with _WRITE.
	(transfer_array_desc):  Likewise.

2010-10-15  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45186
	* trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
	(gfc_trans_runtime_error_vararg): Remove prototype.
	* trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
	(gfc_add_modify, gfc_evaluate_now): Use them.
	(trans_runtime_error_vararg): Renamed from
	gfc_trans_runtime_error_vararg, made static and use locus.
	(gfc_trans_runtime_error): Use it.
	(gfc_trans_runtime_check): Ditto and make use of locus.
	* trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
	gfc_trans_do, gfc_trans_do_while): Improve line number
	associated with generated expressions.

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

	PR fortran/38936
	* parse.c (parse_associate): Set typespec of associate-name if that of
	the target is already available.

2010-10-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45961
	* resolve.c (resolve_typebound_function): Bugfix for type-bound
	operators.

2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c:  Include opts.h.
	(optimize_comparison):  Renamed from optimize_equality.
	Change second argument to operation to be compared.
	Use flag_finite_math_only to avoid comparing REAL and
	COMPLEX only when NANs are honored.  Simplify comparing
	of string concatenations where left or right operands are
	equal.  Simplify all comparison operations, based on the result
	of gfc_dep_compare_expr.
	* dependency.c:  Include arith.h.
	(gfc_are_identical_variables):  Volatile variables should not
	compare equal to themselves.
	(gfc_dep_compare_expr):  Handle string constants and string
	concatenations.

2010-10-08  Joseph Myers  <joseph@codesourcery.com>

	* f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	* gfortran.h (gfc_init_options_struct): Declare.
	* options.c (gfc_init_options_struct): New.  Split out from
	gfc_init_options.

2010-10-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45933
	* resolve.c (resolve_typebound_function): Use correct declared type
	for type-bound operators.

2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/45916
	Revert revision 165026:
	2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* decl.c (match_procedure_in_type): Assertify if conditions.

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

	PR fortran/45889
	* resolve.c (resolve_transfer): Use expression inside parenthesis to
	find acutal component to be transgferred.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-stmt.c (gfc_trans_allocate): free lhs expr.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_free_ss_chain): Made non-static.
	* trans-array.h (gfc_free_ss_chain): New prototype.
	* trans-stmt.c (gfc_trans_where_2): Free ss chains.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
	subcomponents.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-expr.c (get_proc_ptr_comp): Restore initial expression type
	before calling gfc_free_expr.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
	gfc_advance_se_ss_chain.
	* trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
	gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
	calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
	* trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.c (gfc_restore_backend_locus): New function.
	(gfc_get_backend_locus): Renamed to ...
	(gfc_save_backend_locus): ... this.
	* trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
	gfc_save_backend_locus): Same.
	* trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
	gfc_trans_deferred_array): Rename gfc_get_backend_locus to
	gfc_save_backend_locus.
	(gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
	end.
	(gfc_trans_g77_array, gfc_trans_deferred_array): Use
	gfc_restore_backend_locus instead of gfc_set_backend_locus.
	(gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
	return.
	* trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
	gfc_trans_deferred_vars):
	Rename gfc_get_backend_locus to gfc_save_backend_locus.
	Use gfc_restore_backend_locus insted of gfc_set_backend_locus.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_build_constant_array_constructor): Free array
	spec when done.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
	before overwriting it.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
	* symbol.c (gen_shape_param): Ditto.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* symbol.c (free_entry_list): New function.
	(gfc_free_namespace): Free list of entries.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* symbol.c (free_components): Free list of formal args and formal
	namespace.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* simplify.c (gfc_simplify_size): Clear temporary mpz int before
	returning.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* resolve.c (add_dt_to_dt_list): Remove unneeded if.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* resolve.c (check_typebound_baseobject): Free local expr before
	returning.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* primary.c (gfc_match_structure_constructor): Invert the assert logic.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* primary.c (gfc_free_structure_ctor_component): Also free the
	component structure itself.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* module.c (gfc_use_module): Free atom_string when done with it.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* module.c (read_module): Remove useless string duplication.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortranspec.c (append_arg): Remove commented code.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* decl.c (match_procedure_in_type): Assertify if conditions.

2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

	* cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
	preprocessing is disabled.

2010-10-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45838
	* f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
	ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
	(gfc_define_builtin): Change last argument to int bitmask from bool,
	control addition of TREE_NOTHROW and leaf attribute as well.
	(DO_DEFINE_MATH_BUILTIN): Adjust callers.
	(gfc_init_builtin_functions): Likewise.  Remove
	ATTR_{,CONST_}NOTHROW_LIST enum.

2010-10-04  Andi Kleen <ak@linux.intel.com>

	* Make-lang.in (gfortran, f951): Add + to build rule.

2010-10-04  Richard Guenther  <rguenther@suse.de>

	* f95-lang.c (current_translation_unit): New global variable.
	(gfc_create_decls): Build a translation-unit decl.
	(pushdecl): In the global binding-level use the
	translation-unit decl as DECL_CONTEXT.
	* trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
	(build_function_decl): Likewise.  Delay setting the assembler
	name, leave setting of DECL_CONTEXT to pushdecl.
	(trans_function_start): Use DECL_FILE_SCOPE_P.
	(gfc_create_module_variable): Likewise.  Remove questionable
	asserts.
	* trans.c (gfc_generate_module_code): Likewise.

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

	* cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
	instead of duplicating code.
	* Make-lang.in: Add dependency on cppbuiltin.h. Don't define
	BASEVER.

2010-10-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45748
	* resolve.c (resolve_formal_arglist): Avoid setting default type for
	formal arguments of intrinsic procedures.

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

	PR fortran/45828
	* resolve.c (resolve_allocate_expr): Do not use
	'gfc_has_default_initializer'.

2010-09-30  Tobias Burnus  <burnus@net-b.de>

	* gfortran.tex (Fortran 2008 status): Update list of
	implemented features.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt: Don't use VarExists.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* cpp.c (cpp_define_builtins): Update names of gfc_option_t
	members.
	(gfc_cpp_post_options): Update names of cpp_options members.
	(cb_cpp_error): Update names of diagnostic_context members.
	* f95-lang.c (gfc_init_builtin_functions): Update names of
	gfc_option_t members.
	* gfortran.h (gfc_option_t): Rename warn_conversion and
	flag_openmp.
	* intrinsic.c (gfc_convert_type_warn): Update names of
	gfc_option_t members.
	* options.c (gfc_init_options, gfc_post_options, set_Wall,
	gfc_handle_option): Update names of gfc_option_t members.
	* parse.c (next_free, next_fixed): Update names of gfc_option_t
	members.
	* scanner.c (pedantic): Remove extern declaration.
	(skip_free_comments, skip_fixed_comments, include_line): Update
	names of gfc_option_t members.
	* trans-decl.c (gfc_generate_function_code): Update names of
	gfc_option_t members.

2010-09-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/40569
	PR fortran/40568
	* intrinsic.c (add_functions): Make compiler_version and
	compiler_options CLASS_INQUIRY.
	* gfortran.h (gfc_get_option_string): New prototype.
	* intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
	Add documentation.
	(C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
	(ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
	(ISO_C_BINDING): Refer to C_SIZEOF.
	* options.c (gfc_get_option_string): New function.
	* simplify.c (gfc_simplify_compiler_options): Use it.
	(gfc_simplify_compiler_version): Include compiler name.

2010-09-28  Jan Hubicka  <jh@suse.cz>

	* f95-lang.c (gfc_define_builtin): Make leaf.
	(gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
	and ATTR_NOTHROW_LEAF_LIST.
	(DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
	(DEF_GOMP_BUILTIN): Likewise.

2010-09-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45756
	* trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
	module parameters.

2010-09-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/40569
	PR fortran/40568
	* intrinsic.h (gfc_simplify_compiler_options,
	gfc_simplify_compiler_version): New prototypes.
	* intrinsic.c (gfc_intrinsic_function_by_id,
	make_from_module): New functions.
	(gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
	gfc_specific_intrinsic): Don't return module intrinsics.
	(add_functions): Add compiler_options, compiler_version.
	(gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
	* symbol.c (std_for_isocbinding_symbol): Add version check for
	NAMED_FUNCTIONS.
	* iso-fortran-env.def: Add compiler_options, compiler_version.
	* iso-c-binding.def: Add c_sizeof.
	* gfortran.h (gfc_intrinsic_sym): Add from_module:1.
	(iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
	(gfc_intrinsic_function_by_id): New prototype.
	* module.c (create_intrinsic_function): New function.
	(import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
	* trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
	* resolve.c (resolve_intrinsic): Try also to resolve intrinsics
	by ISYM ID.
	* simplify.c (gfc_simplify_compiler_options,
	gfc_simplify_compiler_version): New functions.

2010-09-26  Daniel Kraft  <d@domob.eu>

	PR fortran/45783
	PR fortran/45795
	* resolve.c (resolve_select_type): Clarify code.
	(resolve_assoc_var): Only set typespec if it is currently unknown.

2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/45793
	* module.c (create_int_parameter_array): Set the array value shape.

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

	* gfortran.texi: Re-add accidently removed \input line.

2010-09-25  Daniel Kraft  <d@domob.eu>

	PR fortran/45776
	* gfortran.h (struct gfc_dt): New member `dt_io_kind'.
	* io.c (resolve_tag): F2008 check for NEWUNIT and variable
	definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
	(gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
	`extra_comma' with changed semantics.
	(gfc_resolve_dt): Check variable definitions.
	(match_io_element): Remove INTENT and PURE checks here and
	initialize code->ext.dt member.
	(match_io): Set dt->dt_io_kind.
	(gfc_resolve_inquire): Check variable definition for all tags
	except UNIT, FILE and ID.
	* resolve.c (resolve_transfer): Variable definition check.

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

	* interface.c (gfc_match_end_interface): Constify char pointer
	to fix warning.

2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>

	* interface.c (gfc_match_end_interface): Deal with user defined
	operators that overload rational operators and C1202.

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

	* gfortran.texi: Add second space after end-of-sentence period;
	change / to /@/ to allow hyphenation of URLs.
	(Standards): Remove duplicated OpenMP, update wording given that
	Fortran 2008 now released.
	(Fortran 2008 status): Update and add list of implemented features.

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

	PR fortran/40571
	* iso-fortran-env.def: Add NAMED_KINDARRAY with
	character_kinds, integer_kinds, logical_kinds and
	real_kinds.
	* gfortran.h: Add them to iso_fortran_env_symbol.
	* libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
	LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
	libgfortran_stat_codes to libgfortran_error_codes.
	* module.c (create_int_parameter_array): New function.
	(use_iso_fortran_env_module): Use it for
	NAMED_KINDARRAY of iso-fortran-env.def.
	* trans-decl.c (gfc_get_symbol_decl): Parameter
	arrays of intrinsics modules become local static variables.
	* intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
	integer_kinds, logical_kinds and real_kinds.

2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45744
	* frontend-passes.c (optimize_binop_array_assignment):
	Only re-use lhs as intermediate storage if kind and type
	parameters match.

2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/45745
	PR fortran/45648
	* trans-array.c (gfc_conv_expr_descriptor): Handle
	ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.

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

	* intrinsic.texi (OpenMP modules): Add named constants of
	OMP_LIB.

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

	PR fortran/38936
	PR fortran/44044
	PR fortran/45474
	* gfortran.h (gfc_check_vardef_context): New method.
	(struct symbol_attribute): New flag `select_type_temporary'.
	* primary.c (gfc_variable_attr): Clarify initialization of ref.
	(match_variable): Remove PROTECTED check and assignment check
	for PARAMETERs (this is now done later).
	* match.c (gfc_match_iterator): Remove INTENT(IN) check.
	(gfc_match_associate): Defer initialization of newAssoc->variable.
	(gfc_match_nullify): Remove PURE definability check.
	(select_type_set_tmp): Set new `select_type_temporary' flag.
	* expr.c (gfc_check_assign): Remove INTENT(IN) check here.
	(gfc_check_pointer_assign): Ditto (and other checks removed).
	(gfc_check_vardef_context): New method.
	* interface.c (compare_parameter_protected): Removed.
	(compare_actual_formal): Use `gfc_check_vardef_context' for checks
	related to INTENT([IN]OUT) arguments.
	* intrinsic.c (check_arglist): Check INTENT for intrinsics.
	* resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
	(remove_last_array_ref): New method.
	(resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
	(resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
	(resolve_assoc_var): Remove checks for definability here.
	(resolve_select_type): Handle resolving of code->block here.
	(resolve_ordinary_assign): Remove PURE check.
	(resolve_code): Do not resolve code->blocks for SELECT TYPE here.
	Use `gfc_check_vardef_context' for assignments and pointer-assignments.

2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gfortran.texi (Argument list functions): Allow URL to wrap.
	* intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
	(IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
	(ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
	code markups in the text.
	* invoke.texi (Fortran Dialect Options)
	(Error and Warning Options, Directory Options, Code Gen Options):
	Likewise.  Remove @code inside @smallexample.

2010-09-22  Joseph Myers  <joseph@codesourcery.com>

	* gfortranspec.c (lang_specific_driver): Handle OPT__version and
	OPT__help instead of OPT_fversion and OPT_fhelp.
	* lang.opt (-all-warnings, -assert, -assert=, -comments,
	-comments-in-macros, -define-macro, -define-macro=, -dependencies,
	-dump, -dump=, -include-barrier, -include-directory,
	-include-directory=, -include-directory-after,
	-include-directory-after=, -include-prefix, -include-prefix=,
	-no-line-commands, -no-standard-includes, -output, -output=,
	-preprocess, -print-missing-file-dependencies, -trace-includes,
	-undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
	-write-dependencies, -write-user-dependencies): New.

2010-09-21  Jason Blevins  <jrblevin@sdf.org>

	* intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
	execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
	Correct spelling.

2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/45648
	* trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
	info->dim.

	PR fortran/45648
	* trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
	accessing dimensions in reversed order. 

	PR fortran/45648
	* trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
	intrinsic function call. 

	* trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
	Update asserts accordingly.

	PR fortran/45648
	* trans.h (gfc_se): New field force_tmp. 
	* trans-expr.c (gfc_conv_procedure_call): Check for argument alias
	and set parmse.force_tmp if some alias is found. 
	* trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
	if se->force_tmp is set. 

2010-09-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45438
	* trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
	TBPs, PPCs and pointer/allocatable components.

2010-09-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45081
	* simplify.c (is_constant_array_expr): Allow structure array
	elements as well as constants.
	(gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
	gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
	type of source to the result.

2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (gfc_expr_walker):  Also
	handle EXPR_SUBSTRING.

2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (gfc_expr_walker):  Handle
	constructors and references.

2010-09-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43665
	* trans-types.c (create_fn_spec): New function.
	(gfc_get_function_type): Call it.

2010-09-16  Jakub Jelinek  <jakub@redhat.com>

	* gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
	(gfc_expr_walker, gfc_code_walker): New prototypes.
	* frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
	(WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
	(optimize_namespace): Use gfc_code_walker.
	(optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
	(optimize_expr_0, optimize_code_node,
	optimize_actual_arglist): Removed.
	(optimize_assignment): Don't call optimize_expr_0.

2010-09-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45674
	* interface.c (compare_parameter): Create vtab for actual argument,
	instead of formal (if needed).

2010-09-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45577
	* resolve.c (resolve_allocate_expr): Do default initialization via
	EXEC_INIT_ASSIGN.

2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* mathbuiltins.def: Do not defined huge_val built-in.
	* trans-const.c (gfc_build_inf_or_huge): New function.
	* trans-const.h (gfc_build_inf_or_huge): New prototype.
	* f95-lang.c (gfc_init_builtin_functions): Don't defined
	huge_val built-ins.
	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
	have functions of type (*) (void) anymore.
	(gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
	(gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
	of generating a call to huge_val().

2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
	* dependency.c (gfc_check_dependency): Don't depend on
	expr's inline_noncopying_intrinsic_attribute.
	* dependency.c (gfc_check_argument_var_dependency,
	gfc_check_argument_dependency): Ditto. Recursively check dependency
	as NOT_ELEMENTAL in the non-copying (=transpose) case.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
	* resolve.c (find_noncopying_intrinsics): Remove.
	(resolve_function, resolve_call): Remove call to
	find_noncopying_intrinsics.

	* trans-array.c (gfc_conv_array_transpose): Remove.
	(gfc_walk_subexpr): Make non-static. Move prototype...
	* trans-array.h (gfc_walk_subexpr): ... here.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
	handling.
	(walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
	gfc_inline_intrinsic_function_p): New.
	(gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
	Remove transpose from the libcall list.
	(gfc_walk_intrinsic_function): Special case inline intrinsic.
	* trans.h (gfc_inline_intrinsic_function_p): New prototype.

2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-expr.c (expr_is_variable): New function taking non-copying
	intrinsic functions into account.
	(gfc_trans_assignment_1): Use expr_is_variable.

2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_loop_setup): Access the shape along the
	real array dimension instead of the scalarizer (loop) dimension.

2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
	transposed references.

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

	PR fortran/45186
	* trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
	build4_stat_loc): New inline functions.
	(build1_loc, build2_loc, build3_loc, build4_loc): New macros.
	(build1_v, build2_v, build3_v, build4_v): Use input_location
	as locus.
	* trans-array.c (gfc_trans_scalarized_loop_end,
	gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
	* trans.c (gfc_build_addr_expr, gfc_build_array_ref,
	gfc_finish_wrapped_block): Ditto.
	* trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
	* trans-expr.c (gfc_conv_missing_dummy,
	gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
	* trans-openmp.c (gfc_omp_clause_default_ctor,
	gfc_trans_omp_critical, gfc_trans_omp_parallel,
	gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
	gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
	gfc_trans_omp_single, gfc_trans_omp_task,
	gfc_trans_omp_workshare): Ditto.

2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
	for dummy argument that appears in a specification statement.

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

	* trans-array.c (gfc_get_array_ref_dim): New function.
	(gfc_trans_create_temp_array): Reconstruct array
	bounds from loop bounds. Use array bounds instead of loop bounds.

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

	* trans-array.c (gfc_set_loop_bounds_from_array_spec):
	Get the array dimension from the dim array.

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

	* trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
	dim array to get the stride in the innermost loop.

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

	* trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
	(gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
	* trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.

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

	* trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
	and info dimension are the same. Loop over loop dimension.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension

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

	* trans-array.c (gfc_conv_array_transpose): Change generated descriptor
	name

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

	PR fortran/43665
	* intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
	STAT): Show also syntax for the function version.
	* intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
	 add_sym_3s_intent): Remove function.
	(add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
	as argument.
	(add_sym_2_intent): New function.
	(add_functions): Set intent for functions which modify
	the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
	argument name of hostnm from "a" to "c"
	(add_subroutines): Change add_sym_*s_intent to
	add_sym_*s and add intent to the add_sym_*s calls.

2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/38282
	* intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
	MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
	* gfortran.h: Define ISYM values for above intrinsics.
	* intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
	gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
	gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
	gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
	gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
	gfc_simplify_merge_bits, gfc_simplify_rshift,
	gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
	gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
	gfc_resolve_shift): New prototypes.
	* iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
	gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
	* check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
	gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
	functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_dshift,
	gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
	gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
	functions.
	(gfc_conv_intrinsic_function): Call above static functions.
	* intrinsic.texi: Document new intrinsics.
	* simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
	gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
	gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
	gfc_simplify_merge_bits, gfc_simplify_rshift, 
	gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
	New functions.

2010-09-08  Jakub Jelinek  <jakub@redhat.com>

	* frontend-passes.c (optimize_code_node): Walk block chain by default.

	PR fortran/45597
	* trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
	instead of code->block.

	PR fortran/45595
	* openmp.c (resolve_omp_do): Report not enough do loops for
	collapse even if block->next is NULL.

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

	PR fortran/45576
	* dependency.c (gfc_deb_compare_expr):  Take missing optional
	arguments into account.

2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
	* trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
	(gfc_build_intrinsic_function_decls): Don't build the
	gfor_fndecl_clz128 and gfor_fndecl_ctz128.
	* trans-intrinsic.c (gfc_conv_intrinsic_leadz,
	gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
	of calling clz128/ctz128 library functions.

2010-09-07  Jan Hubicka  <jh@suse.cz>

	* trans-expr.c (gfc_conv_initializer): Set STATIC flags for
	initializers.

2010-09-07  Tobias Burnus <burnus@net-b.de>
	
	PR fortran/45583
	* intrinsic.texi (COS): Remove superfluous "n".

2010-09-07  Tobias Burnus <burnus@net-b.de>

	PR fortran/45186
	* trans-array.c (gfc_conv_descriptor_data_get,
	gfc_conv_descriptor_data_set, 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_conv_shift_descriptor_lbound,
	gfc_set_loop_bounds_from_array_spec,
	gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
	gfc_conv_array_transpose, gfc_get_iteration_count,
	gfc_grow_array, gfc_trans_array_ctor_element,
	gfc_trans_array_constructor_subarray,
	gfc_trans_array_constructor_value,
	constant_array_constructor_loop_size, gfc_trans_array_constructor,
	gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
	gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
	gfc_conv_array_ref, gfc_trans_preloop_setup,
	gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
	gfc_conv_loop_setup, gfc_conv_array_extent_dim,
	gfc_conv_descriptor_size, gfc_array_init_size,
	gfc_array_allocate, gfc_array_deallocate,
	gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
	gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
	get_array_charlen, gfc_conv_expr_descriptor,
	array_parameter_size, gfc_conv_array_parameter,
	gfc_trans_dealloc_allocated, get_full_array_size,
	duplicate_allocatable,
	structure_alloc_comps): Change fold_build[0-9] to
	fold_build[0-9]_loc.
	(duplicate_allocatable, structure_alloc_comps,
	gfc_duplicate_allocatable): Add space after function name.

2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
	checking string length value.
	* trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
	gfc_charlen_type_node type.

	PR fortran/45564
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
	length to gfc_charlen_type_node.

2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36931
	* frontend-passes.c (optimize_binop_array_assignment):  New
	function.
	(optimize_assignment):  Call it.

2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/34145
	* trans-expr.c (gfc_conv_substring):  If start and end
	of the string reference are equal, set the length to one.

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

	PR fortran/45560
	* dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.

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

	PR fortran/45560
	* dump-parse-tree.c (gfc_debug_expr): New function.

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

	PR fortran/38282
	* intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
	(check_specific): Special case for those intrinsics.
	* gfortran.h (gfc_isym_id): Add new intrinsics
	* intrinsic.h (gfc_check_transf_bit_intrins,
	gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
	gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
	New prototypes.
	* iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
	gfc_resolve_iparity, resolve_transformational): New functions.
	(gfc_resolve_product, gfc_resolve_sum,
	gfc_resolve_parity): Use resolve_transformational.
	* check.c (gfc_check_transf_bit_intrins): New function.
	* simplify.c (gfc_simplify_iall, gfc_simplify_iany,
	gfc_simplify_iparity, do_bit_any, do_bit_ior,
	do_bit_xor, simplify_transformation): New functions.
	(gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
	gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
	* trans-intrinsic.c (gfc_conv_intrinsic_arith,
	gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
	Handle IALL, IANY and IPARITY intrinsics.	
	* intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
	order.
	(IALL, IANY, IPARITY): Document new intrinsics.

2010-09-05  Tobias Burnus <burnus@net-b.de>

	PR fortran/45186
	* f95-lang.c (gfc_truthvalue_conversion): Use
	fold_build[0-9]_loc instead of fold_build[0-9].
	* convert.c (convert): Ditto.
	* 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_trans_same_strlen_check,
	gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
	gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
	gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
	gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
	gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
	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_bitop, gfc_conv_intrinsic_not,
	gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
	gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
	gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
	gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
	gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
	size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
	gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
	gfc_conv_intrinsic_transfer, gfc_conv_allocated,
	gfc_conv_associated, gfc_conv_same_type_as,
	gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.

2010-09-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45530
	* resolve.c (resolve_fl_namelist): Change constraint checking
	order to prevent endless loop.

2010-09-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45507
	* resolve.c (resolve_allocate_expr): Generate default initializers
	already at this point, resolve them and put them into expr3, ...
	* trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
	translation stage.

2010-09-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45186
	* trans-intrinsic.c (gfc_conv_intrinsic_sign,
	gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
	of build_call_expr.
	* trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
	gfc_conv_string_length, gfc_conv_substring,
	gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
	gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
	gfc_conv_expr_op, gfc_build_compare_string,
	gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
	gfc_conv_derived_to_class, conv_isocbinding_procedure,
	gfc_conv_procedure_call, fill_with_spaces,
	gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
	gfc_trans_structure_assign, gfc_trans_pointer_assignment,
	gfc_trans_scalar_assign, gfc_trans_zero_assign,
	gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
	fold_build[0-9] to fold_build[0-9]_loc.
	* trans-io.c (set_parameter_const, set_parameter_value,
	set_parameter_ref, gfc_convert_array_to_string, set_string,
	set_internal_unit, io_result, set_error_locus,
	nml_get_addr_expr, build_dt): Ditto.
	* trans-openmp.c (gfc_omp_clause_default_ctor,
	gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
	gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
	gfc_trans_omp_do): Ditto.
	* trans.c (gfc_add_modify, gfc_build_addr_expr,
	gfc_build_array_ref, gfc_trans_runtime_error_vararg,
	gfc_trans_runtime_check, gfc_call_malloc,
	gfc_allocate_with_status, gfc_allocate_array_with_status,
	gfc_call_free, gfc_deallocate_with_status,
	gfc_call_realloc): Ditto.

2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (gfc_deb_compare_expr):  Compare equal for equal
	arglists for pure user functions, or for those intrinsic
	functions which are also pure.
	* intrinsics.c (add_conv):  Mark conversion functions as pure.
	(add_char_conversions):  Likewise.

2010-09-03  Daniel Kraft  <d@domob.eu>

	PR fortran/34162
	* resolve.c (resolve_actual_arglist): Allow internal procedure
	as actual argument with Fortran 2008.

2010-09-03  Daniel Kraft  <d@domob.eu>

	PR fortran/44602
	* gfortran.h (struct gfc_code): Renamed `whichloop' to
	`which_construct' as this is no longer restricted to loops.
	* parse.h (struct gfc_state_data): New field `construct'.
	* match.c (match_exit_cycle): Handle EXIT from non-loops.
	* parse.c (push_state): Set `construct' field.
	* resolve.c (resolve_select_type): Extend comment.
	* trans-stmt.c (gfc_trans_if): Add exit label.
	(gfc_trans_block_construct), (gfc_trans_select): Ditto.
	(gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
	(gfc_trans_do), (gfc_trans_do_while): Ditto.
	(gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
	(gfc_trans_cycle): Ditto.
	(gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.

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

	* trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
	(gfc_conv_intrinsic_ishft): Only evaluate arguments once.
	(gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
	* intrinsic.texi (RSHIFT): Fix documentation.

2010-09-02  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45186
	* trans-common.c (create_common): Change build[0-9] to
	build[0-9]_loc.
	* trans-const.c (gfc_conv_constant_to_tree,
	gfc_conv_constant_to_tree): Ditto.
	* trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
	gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
	add_argument_checking, create_main_function,
	gfc_generate_return): Ditto.
	* trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
	* trans-stmt.c (allocate_temp_for_forall_nest_1,
	compute_inner_temp_size, compute_overall_iter_number,
	generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
	gfc_conv_elemental_dependencies, gfc_do_allocate,
	gfc_evaluate_where_mask, gfc_trans_allocate,
	gfc_trans_arithmetic_if, gfc_trans_call,
	gfc_trans_character_select, gfc_trans_deallocate,
	gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
	gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
	gfc_trans_integer_select, gfc_trans_logical_select,
	gfc_trans_pointer_assign_need_temp, gfc_trans_return,
	gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
	gfc_trans_where_assign) Ditto.

2010-09-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44541
	* resolve.c (resolve_symbol): Correct check for attributes of CLASS
	variable.

2010-09-02  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45489
	* resolve.c (apply_default_init): Mark symbol as referenced,
	if it is initialized.
	(resolve_symbol): Change intialized check for BT_DERIVED such
	that also function results get initialized; remove now obsolete
	gfc_set_sym_referenced for BT_CLASS.

2010-09-01  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44541
	* class.c (gfc_find_derived_vtab): Add component '$def_init'.
	* resolve.c (resolve_allocate_expr): Defer handling of default
	initialization to 'gfc_trans_allocate'.
	(apply_default_init,resolve_symbol): Handle polymorphic dummies.
	(resolve_fl_derived): Suppress error messages for vtypes.
	* trans-stmt.c (gfc_trans_allocate): Handle initialization via
	polymorphic MOLD expression.
	* trans-expr.c (gfc_trans_class_init_assign): Now only used for
	dummy initialization.

2010-09-01  Tobias Burnus  <burnus@net-b.de>

	* gfortran.texi (preprocessing): Update URL to COCO.

2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
	array quad_decls. Remove unnecessary assignment.

2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans-expr.c (gfc_conv_power_op): Handle floating-point types
	other than long double.
	* mathbuiltins.def: Add builtins from the POW and CPOW family.
	* trans.h (gfc_builtin_decl_for_float_kind): New prototype.
	* trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
	prefix to function name.
	(gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
	(gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
	function name.
	(gfc_conv_intrinsic_exponent): Likewise.
	(gfc_conv_intrinsic_abs): Likewise.
	(gfc_conv_intrinsic_mod): Likewise.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_arith): Likewise.
	(gfc_conv_intrinsic_fraction): Likewise.
	(gfc_conv_intrinsic_nearest): Likewise.
	(gfc_conv_intrinsic_spacing): Likewise.
	(gfc_conv_intrinsic_rrspacing): Likewise.
	(gfc_conv_intrinsic_scale): Likewise.
	(gfc_conv_intrinsic_set_exponent): Likewise.

2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
	* intrinsic.h (gfc_resolve_execute_command_line): New function.
	* iresolve.c (gfc_resolve_execute_command_line): New function.
	* gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
	* intrinsic.texi: Document EXECUTE_COMMAND_LINE.

2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/38282
	* f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
	and parity{,l,ll} builtins.
	* trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
	(gfc_conv_intrinsic_function): Call above new functions.
	* simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
	functions.
	* intrinsic.texi: Document POPCNT and POPPAR.

2010-08-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45456
	* resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.

2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* Make-lang.in: Add frontend-passes.o dependencies.

2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42769
	* resolve.c (resolve_structure_cons): For derived types, make sure the
	type has been resolved.
	(resolve_typebound_procedures): Make sure the vtab has been generated.

2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45439
	* match.c (gfc_match_select_type): Give the associate-name the
	FL_VARIABLE attribute.

2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>

	* simplify.c (gfc_simplify_bessel_n2): Fix indention
	and argument type.

2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/45436
	* trans-types.c (gfc_init_kinds): Disable TFmode.

2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45432
	* match.c (gfc_match_allocate): Avoid double free on error.

2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/32049
	* gfortran.h (gfc_real_info): Add c_float128 field.
	* mathbuiltins.def: Indicate which builtins are const.
	* trans-types.h (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	* trans-types.c (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	(gfc_init_kinds): Allow TFmode.
	(gfc_build_real_type): Mark __float128 types as such.
	(gfc_init_types): Initialize float128_type_node and
	complex_float128_type_node
	* f95-lang.c (gfc_init_builtin_functions): Adjust for new
	argument of OTHER_BUILTIN macro.
	* trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
	(builtin_decl_for_precision): Special case for __float128.
	(builtin_decl_for_float_kind): Likewise.
	(define_quad_builtin): New function.
	(gfc_build_intrinsic_lib_fndecls): Create all __float128
	library decls if necessary. Store them in the real16_decl and
	complex16_decl builtin map fields.
	(gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
	library function names.

2010-08-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33197
	* gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
	* gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
	gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
	gfc_resolve_parity): New prototypes.
	* gcc/fortran/gfortran.h (gfc_isym_id): New enum items
	GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
	* gcc/fortran/iresolve.c (gfc_resolve_norm2,
	gfc_resolve_parity): New functions.
	* gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
	New functions.
	* gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
	gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
	* gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
	* gcc/fortran/simplify.c (simplify_transformation_to_array):
	Add post-processing opterator.
	(gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
	gfc_simplify_product, gfc_simplify_sum): Update call.
	(add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
	gfc_simplify_parity): New functions.

2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45420
	* match.c (select_type_set_tmp): Add the possibility to reset the
	temporary to NULL.
	(gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.

2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (check_section_vs_section):  Single test for
	identical strides which takes into account that only one
	of the strides may be NULL.

2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43217
	* primary.c (match_hollerith_constant): Calculate padding needed to
	fill default integer and allocate string for that size.  Set pad bytes
	to ' '.
	* gfortran.h: Add hollerith pad value to type spec union.
	* data.c (create_character_initializer): Fix spelling of function name.
	Use hollerith pad value to calculate length.
	* arith.c (hollerith2representation); Use hollerith pad value to
	calculate length.

2010-08-26  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	PR fortran/44047
	PR fortran/45384
	* gfortran.h (struct gfc_association_list): New flag `dangling'.
	(gfc_build_block_ns): Declared here...
	* parse.h (gfc_build_block_ns): ...instead of here.
	* trans.h (gfc_process_block_locals): Expect additionally the
	gfc_association_list of BLOCK (if present).
	* match.c (select_type_set_tmp): Create sym->assoc for temporary.
	* resolve.c (resolve_variable): Only check for invalid *array*
	references on associate-names.
	(resolve_assoc_var): New method with code previously in resolve_symbol.
	(resolve_select_type): Use association to give the selector and
	temporaries their values instead of ordinary assignment.
	(resolve_fl_var_and_proc): Allow CLASS associate-names.
	(resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
	* trans-stmt.c (gfc_trans_block_construct): Pass association-list
	to `gfc_process_block_locals' to match new interface.
	* trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
	here automatically.
	(gfc_process_block_locals): Defer them rather here when linked to
	from the BLOCK's association list.

2010-08-25  Jakub Jelinek  <jakub@redhat.com>

	* trans-decl.c (gfc_build_intrinsic_function_decls): Set
	TREE_NOTHROW on fndecls that can't throw.  Set
	TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
	(gfc_build_builtin_function_decls): Set TREE_NOTHROW on
	gfor_fndecl_associated.

2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/45380
	* frontend-passes.c (optimize_equality): Don't optimize array equality

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

	PR fortran/45366
	* resolve.c (resolve_procedure_interface): New function split off from
	'resolve_symbol'.
	(resolve_formal_arglist): Call it here ...
	(resolve_symbol): ... and here.

2010-08-22  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (gfortranspec.o): Update dependencies.
	* gfortranspec.c: Include coretypes.h before gcc.h.  Include
	opts.h.
	(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
	(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
	(g77_xargc): Make unsigned.
	(g77_xargv): Change to g77_x_decoded_options.
	(g77_newargc): Make unsigned.
	(g77_newargv): Change to g77_new_decoded_options.
	(strings_same, options_same): New.
	(append_arg): Use cl_decoded_option structures.
	(append_option): New.
	(add_arg_libgfortran): New.
	(lang_specific_driver): Use cl_decoded_option structures.

2010-08-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45271
	PR fortran/45290
	* class.c (add_proc_comp): Add static initializer for PPCs.
	(add_procs_to_declared_vtab): Modified comment.
	* module.c (mio_component): Add argument 'vtype'. Don't read/write the
	initializer if the component is part of a vtype.
	(mio_component_list): Add argument 'vtype', pass it on to
	'mio_component'.
	(mio_symbol): Modified call to 'mio_component_list'.
	* trans.h (gfc_conv_initializer): Modified prototype.
	(gfc_trans_assign_vtab_procs): Removed.
	* trans-common.c (create_common): Modified call to
	'gfc_conv_initializer'.
	* trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
	gfc_emit_parameter_debug_info): Modified call to
	'gfc_conv_initializer'.
	(build_function_decl): Remove assertion.
	* trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
	Removed call to 'gfc_trans_assign_vtab_procs'.
	(gfc_conv_initializer): Add argument 'procptr'.
	(gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
	(gfc_trans_assign_vtab_procs): Removed.
	* trans-stmt.c (gfc_trans_allocate): Removed call to
	'gfc_trans_assign_vtab_procs'.

2010-08-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36158
	PR fortran/33197
	* intrinsic.c (add_sym): Init value attribute.
	(set_attr_value): New function.
	(add_functions) Use it and add JN/YN resolvers.
	* symbol.c (gfc_copy_formal_args_intr): Copy value attr.
	* intrinsic.h (gfc_resolve_bessel_n2): New prototype.
	* gfortran.h (gfc_intrinsic_arg): Add value attribute.
	* iresolve.c (gfc_resolve_bessel_n2): New function.
	* trans-intrinsic.c (gfc_get_symbol_for_expr): Create
	formal arg list.
	(gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
	Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
	* simplify.c (): For YN set to -INF if previous values
	was -INF.
	* trans-expr.c (gfc_conv_procedure_call): Don't crash
	if sym->as is NULL.
	* iresolve.c (gfc_resolve_extends_type_of): Set the
	type of the dummy argument to the one of the actual.

2010-08-20  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.

2010-08-20  Joseph Myers  <joseph@codesourcery.com>

	* gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
	comment, not -lg2c.

2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-openmp.c: Use FOR_EACH_VEC_ELT.

2010-08-19  Daniel Kraft  <d@domob.eu>

	PR fortran/29785
	PR fortran/45016
	* trans.h (struct gfc_se): New flag `byref_noassign'.
	* trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
	(gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
	* expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
	and check for compile-time errors with those.
	* trans-decl.c (trans_associate_var): Use new routine
	`gfc_conv_shift_descriptor_lbound' instead of doing it manually.
	* trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
	(gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
	(gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
	(gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
	* trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
	rank remapping for assignment.

2010-08-19  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
	* * simplify.c (gfc_simplify_bessel_yn): Change recursive
	into recurrence.

2010-08-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36158
	PR fortran/33197
	* check.c (gfc_check_bessel_n2): New function.
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
	* intrinsic.c (add_functions): Add transformational version
	of the Bessel_jn/yn intrinsics.
	* intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
	gfc_simplify_bessel_yn2): New prototypes.
	* intrinsic.texi (Bessel_jn, Bessel_yn): Document
	transformational variant.
	* simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
	Check for negative order.
	(gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
	gfc_simplify_bessel_yn2): New functions.

2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/41859
	* resolve.c (resolve_transfer): Traverse operands and set expression
	to be checked to a non EXPR_OP type.

2010-08-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45290
	* gfortran.h (gfc_add_save): Modified prototype.
	* decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
	(match_pointer_init): New function to match F08 pointer initialization.
	(variable_decl,match_procedure_decl,match_ppc_decl): Use
	'match_pointer_init'.
	(match_attr_spec): Module variables are implicitly SAVE.
	(gfc_match_save): Modified call to 'gfc_add_save'.
	* expr.c (gfc_check_assign_symbol): Extra checks for pointer
	initialization.
	* primary.c (gfc_variable_attr): Handle SAVE attribute.
	* resolve.c (resolve_structure_cons): Add new argument and do pointer
	initialization checks.
	(gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
	(resolve_values): Call 'resolve_structure_cons' directly with init arg.
	(resolve_fl_variable): Handle SAVE_IMPLICIT.
	* symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
	SAVE_IMPLICIT.
	* trans-decl.c (gfc_create_module_variable): Module variables with
	TARGET can already exist.
	* trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
	(gfc_conv_initializer): Implement non-NULL pointer
	initialization.

2010-08-18  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45295
	* intrinsic.texi (selected_char_kind): Document ISO_10646
	support.

2010-08-17  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/45304
	* trans-decl.c (build_library_function_decl_1): Chain on
	void_list_node instead of creating a new TREE_LIST.
	* trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
	* trans-types.c (gfc_get_function_type): Likewise.  Set
	typelist to void_list_node for the main program.

2010-08-17  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	* gfortran.h (struct gfc_association_list): New member `where'.
	(gfc_is_associate_pointer) New method.
	* match.c (gfc_match_associate): Remember locus for each associate
	name matched and do not try to set variable flag.
	* parse.c (parse_associate): Use remembered locus for symbols.
	* primary.c (match_variable): Instead of variable-flag check for
	associate names set it for all such names used.
	* symbol.c (gfc_is_associate_pointer): New method.
	* resolve.c (resolve_block_construct): Don't generate assignments
	to give associate-names their values.
	(resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
	(resolve_symbol): Set some more attributes for associate variables,
	set variable flag here and check it and don't try to build an
	explicitely shaped array-spec for array associate variables.
	* trans-expr.c (gfc_conv_variable): Dereference in case of association
	to scalar variable.
	* trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
	(gfc_sym_type): Return pointer type for association to scalar vars.
	* trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
	(trans_associate_var): New method.
	(gfc_trans_deferred_vars): Handle association symbols.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
	RejectDriver.
	(MMDX): Change back to MMD.  Mark NoDriverArg instead of
	RejectDriver.
	* cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
	OPT_MDX and OPT_MMDX.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (MDX, MMDX): Mark RejectDriver.

2010-08-15  Janus Weil  <janus@gcc.gnu.org>

	* trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
	vtabs for generics any more).

2010-08-15  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	* gfortran.h (gfc_find_proc_namespace): New method.
	* expr.c (gfc_build_intrinsic_call): No need to build symtree messing
	around with namespace.
	* symbol.c (gfc_find_proc_namespace): New method.
	* trans-decl.c (gfc_build_qualified_array): Use it for correct
	value of nest.
	* primary.c (gfc_match_varspec): Handle associate-names as arrays.
	* parse.c (parse_associate): Removed assignment-generation here...
	* resolve.c (resolve_block_construct): ...and added it here.
	(resolve_variable): Handle names that are arrays but were not parsed
	as such because of association.
	(resolve_code): Fix BLOCK resolution.
	(resolve_symbol): Generate array-spec for associate-names.

2010-08-15  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45211
	* decl.c (verify_c_interop_param): Remove superfluous space (" ").
	(verify_c_interop): Handle unresolved DT with bind(C).

2010-08-15  Tobias Burnus  <burnus@net-b.de>

	* trans-expr.c (gfc_conv_expr_present): Regard nullified
	pointer arrays as absent.
	(gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
	dummys as absent argument.
	* interface.c (compare_actual_formal,compare_parameter):
	Ditto.

2010-08-15  Tobias Burnus  <burnus@net-b.de>

	* interface.c (compare_pointer, ): Allow passing TARGETs to pointers
	dummies with intent(in).

2010-08-15  Daniel Kraft  <d@domob.eu>

	PR fortran/45197
	* decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
	routines not IMPURE also as PURE.
	* intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
	`NO_CLASS' in `CLASS_IMPURE'.
	(add_sym): Set symbol-attributes `pure' and `elemental' correctly.
	(add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
	(add_functions): Ditto.
	(add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
	* resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
	(resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
	are not ALLOCATABLE and have their INTENT specified.

2010-08-13  Daniel Kraft  <d@domob.eu>

	* gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
	* array.c (gfc_match_array_spec): Match implied-shape specification and
	handle AS_IMPLIED_SHAPE correctly otherwise.
	* decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
	(variable_decl): Some checks for implied-shape declaration.
	* resolve.c (resolve_symbol): Assert that array-spec is no longer
	AS_IMPLIED_SHAPE in any case.

2010-08-12  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (MD, MMD): Change to MDX and MMDX.
	* cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.

2010-08-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44595
	* intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
	'gfc_intrinsic_arg'.
	(check_arglist,check_specific): Add reference to 'name' field.
	(init_arglist): Remove reference to 'name' field.
	* intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
	* check.c (variable_check): Reverse order of checks. Respect intent of
	formal arg.
	(int_or_proc_check): New function.
	(coarray_check): New function.
	(allocatable_check): New function.
	(gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
	(gfc_check_complex): Use 'int_or_real_check'.
	(gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
	gfc_check_ucobound): Use 'coarray_check'.
	(gfc_check_pack): Use 'real_or_complex_check'.
	(gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
	'int_or_proc_check'.
	(scalar_check,type_check,numeric_check,int_or_real_check,
	real_or_complex_check,kind_check,double_check,logical_array_check,
	array_check,same_type_check,rank_check,nonoptional_check,
	kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
	gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
	gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
	gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
	gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
	gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
	gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
	to 'name' field.

2010-08-10  Daniel Kraft  <d@domob.eu>

	* gfortran.texi (Interoperability with C): Fix ordering in menu
	and add new subsection about pointers.
	(Interoperable Subroutines and Functions): Split off the pointer part.
	(working with Pointers): New subsection with extended discussion
	of pointers (especially procedure pointers).

2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/44235
	* array.c (gfc_ref_dimen_size):  Add end argument.
	If end is non-NULL, calculate it.
	(ref_size):  Adjust call to gfc_ref_dimen_size.
	(gfc_array_dimen_size):  Likewise.
	(gfc_array_res_shape):  Likewise.
	* gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
	* resolve.c (resolve_array_ref):  For stride not equal to -1,
	fill in the lowest possible end.

2010-08-09  Janus Weil  <janus@gcc.gnu.org>

	* intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.

2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>

	* interface.c (compare_actual_formal): Use XALLOCAVEC instead of
	alloca.
	(check_some_aliasing): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
	(gfc_conv_intrinsic_int): Likewise.
	(gfc_conv_intrinsic_lib_function): Likewise.
	(gfc_conv_intrinsic_cmplx): Likewise.
	(gfc_conv_intrinsic_ctime): Likewise.
	(gfc_conv_intrinsic_fdate): Likewise.
	(gfc_conv_intrinsic_ttynam): Likewise.
	(gfc_conv_intrinsic_minmax): Likewise.
	(gfc_conv_intrinsic_minmax_char): Likewise.
	(gfc_conv_intrinsic_ishftc): Likewise.
	(gfc_conv_intrinsic_index_scan_verify): Likewise.
	(gfc_conv_intrinsic_merge): Likewise.
	(gfc_conv_intrinsic_trim): Likewise.
	* trans.c (gfc_trans_runtime_error_vararg): Likewise.

2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (check_section_vs_section):  Handle cases where
	the start expression coincides with the lower or upper
	bound of the array.

2010-08-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42207
	PR fortran/44064
	PR fortran/44065
	* class.c (gfc_find_derived_vtab): Do not generate vtabs for class
	container types. Do not artificially increase refs. Commit symbols one
	by one.
	* interface.c (compare_parameter): Make sure vtabs are present before
	generating module variables.
	* resolve.c (resolve_allocate_expr): Ditto.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45183
	PR fortran/44857
	* resolve.c (resolve_structure_cons): Fix
	freeing of charlen.

2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	* symbol.c (changed_syms): Made static again.
	(gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
	Changed conditional internal error into assert.
	Rename function to ...
	(gfc_enforce_clean_symbol_state): ... this.
	* gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
	Rename the former to the latter.
	* parse.c (decode_statement, decode_omp_directive,
	decode_gcc_attribute): Update callers accordingly. Don't conditionalize
	on GFC_DEBUG.
	(changed_syms): Remove declaration.
	(next_statement): Use gfc_enforce_clean_symbol_state.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/44857
	* resolve.c (resolve_structure_cons): Fix handling of
	initialization structure constructors with character
	elements of the wrong length.
	* array.c (gfc_check_iter_variable): Add NULL check.
	(gfc_resolve_character_array_constructor): Also truncate
	character length.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

	* trans-io.c (gfc_build_io_library_fndecls): Fix return
	value of some libgfortran functions.

2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (gfc_deb_compare_expr):  Remove any integer
	conversion functions to larger types from both arguments.
	Remove handling these functions futher down.

2010-08-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44584
	PR fortran/45161
	* class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
	* resolve.c (resolve_tb_generic_targets): Check for errors.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* depencency.c (gfc_dep_resolver):  Fix logic for when a loop
	can be reversed.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36854
	* dependency.h:  Add prototype for gfc_are_identical_variables.
	* frontend-passes.c:  Include depencency.h.
	(optimimize_equality):  Use gfc_are_identical_variables.
	* dependency.c (identical_array_ref): New function.
	(gfc_are_identical_variables):  New function.
	(gfc_deb_compare_expr):  Use gfc_are_identical_variables.
	* dependency.c (gfc_check_section_vs_section).  Rename gfc_
	prefix from statc function.
	(check_section_vs_section): Change arguments to gfc_array_ref,
	adjust function body accordingly.

2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	PR fortran/45151
	* intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
	* symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
	gfc_copy_formal_args, gfc_copy_formal_args_intr,
	gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
	* parse.c (parse_derived_contains, parse_spec, parse_progunit):
	Call reject_statement in case of error.
	(match_deferred_characteritics): Call gfc_undo_symbols in case match
	fails.

2010-08-01  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44912
	* class.c (gfc_build_class_symbol): Make '$vptr' component private.
	(gfc_find_derived_vtab): Make vtabs and vtypes public.
	* module.c (read_module): When reading module files, always import
	vtab and vtype symbols.

2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	* symbol.c (changed_syms): Made non-static.
	* parse.c (changed_syms): Declare new external.
	(next_statement): Assert changed_syms is NULL at the beginning.

2010-07-30  Janus Weil  <janus@gcc.gnu.org>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44929
	* match.c (match_type_spec): Try to parse derived types before
	intrinsic types.

2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortran.h (gfc_release_symbol): New prototype.
	* symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
	(gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
	Use gfc_release_symbol.
	* parse.c (gfc_fixup_sibling_symbols): Ditto.
	* resolve.c (resolve_symbol): Ditto.

2010-07-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45087
	PR fortran/45125
	* trans-decl.c (gfc_get_extern_function_decl): Correctly handle
	external procedure declarations in modules.
	(gfc_get_symbol_decl): Modify assert.

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44962
	* resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45004
	* trans-stmt.h (gfc_trans_class_init_assign): New prototype.
	(gfc_trans_class_assign): Modified prototype.
	* trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
	* trans-expr.c (gfc_trans_class_init_assign): Split off from ...
	(gfc_trans_class_assign): ... here. Modified actual arguments.
	* trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
	handle the MOVE_ALLOC intrinsic with scalar and class arguments.
	* trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.

2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	* class.c (gfc_find_derived_vtab): Accept or discard newly created
	symbols before returning.

2010-07-29  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (cpp): Remove Joined and Separate markers.
	(cpp=): New internal option.
	* lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
	* cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
	OPT_cpp.

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

	PR fortran/45117
	* array.c (resolve_array_bound): Fix error message to properly handle
	non-variable expressions.

2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>

	* decl.c (free_value): Also free repeat field.
	* data.c (gfc_assign_data_value): Always free offset before returning.

2010-07-28  Daniel Kraft  <d@domob.eu>

	* gfortran.h (gfc_build_intrinsic_call): New method.
	* expr.c (gfc_build_intrinsic_call): New method.
	* simplify.c (range_check): Ignore non-constant value.
	(simplify_bound_dim): Handle non-variable expressions and
	fix memory leak with non-free'ed expression.
	(simplify_bound): Handle non-variable expressions.
	(gfc_simplify_shape): Ditto.
	(gfc_simplify_size): Ditto, but only in certain cases possible.

2010-07-28  Joseph Myers  <joseph@codesourcery.com>

	* gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
	Remove.

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

	PR fortran/45077
	* trans-types.c (gfc_get_derived_type): Fix DT declaration
	from modules for whole-file mode.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* gfortran.h (gfc_handle_option): Update prototype and return
	value type.
	* options.c (gfc_handle_option): Update prototype and return value
	type.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
	decoded options in allocating deferred_opt.
	* cpp.h (gfc_cpp_init_options): Update prototype.
	* f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
	* gfortran.h (gfc_option_lang_mask): New.
	(gfc_init_options): Update prototype.
	* options.c (gfc_option_lang_mask): New.
	(gfc_init_options): Update prototype.  Pass new arguments to
	gfc_cpp_init_options.

2010-07-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/40873
	* trans-decl.c (gfc_get_extern_function_decl): Fix generation
	for functions which are later in the same file.
	(gfc_create_function_decl, build_function_decl,
	build_entry_thunks): Add global argument.
	* trans.c (gfc_generate_module_code): Update
	gfc_create_function_decl call.
	* trans.h (gfc_create_function_decl): Update prototype.
	* resolve.c (resolve_global_procedure): Also resolve for
	IFSRC_IFBODY.

2010-07-26  Richard Henderson  <rth@redhat.com>

	PR target/44132
	* f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
	(gfc_write_global_declarations): New.

2010-07-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45066
	* trans-io.c (build_dt): Use NULL_TREE rather than NULL
	for call to transfer_namelist_element.
	* trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
	for -fwhole-file.

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

	PR fortran/40628
	* Make-lang.in:  Add fortran/frontend-passes.o.
	* gfortran.h:  Add prototype for gfc_run_passes.
	* resolve.c (gfc_resolve):  Call gfc_run_passes.
	* frontend-passes.c:  New file.

2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42852
	* scanner.c (gfc_next_char_literal): Enable truncation warning for
	free-form '&'.

2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/44660
	* gfortran.h (gfc_namespace): New field old_equiv.
	(gfc_free_equiv_until): New prototype.
	* match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
	a parameterized stop condition.
	(gfc_free_equiv): Use gfc_free_equiv_until.
	* parse.c (next_statement): Save equivalence list.
	(reject_statement): Restore equivalence list.

2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42852
	* scanner.c (gfc_next_char_literal): Move check for truncation earlier
	in the function so that it does not get missed by early exits.
	(load_line): Add checks for quoted strings and free form comments to
	disable warnings on comments. Add check for ampersand as first
	character after truncation and don't warn for this case, but warn if
	there are subsequent non-whitespace characters.

2010-07-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/40011
	* parse.c (gfc_parse_file): Do not override
	gfc_global_ns_list items.

2010-07-24  Tobias Burnus  <burnus@net-b.de>

	* options.c (gfc_init_options): Enable -fwhole-file by default.
	* interface.c (compare_parameter): Assume a Hollerith constant is
	compatible with all other argument types.

2010-07-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/44945
	* trans-decl.c (gfc_get_symbol_decl): Use module decl with
	-fwhole-file also for derived types.
	* trans-types.c (copy_dt_decls_ifequal): Remove static and
	rename to gfc_copy_dt_decls_ifequal.
	(gfc_get_derived_type): Update call.
	* trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.

2010-07-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45030
	* resolve.c (resolve_global_procedure): Properly handle ENTRY.

2010-07-23  Jakub Jelinek  <jakub@redhat.com>

	* trans-types.c (gfc_get_array_descriptor_base,
	gfc_get_array_type_bounds): Set TYPE_NAMELESS.
	* trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
	instead of clearing DECL_NAME.
	(gfc_build_dummy_array_decl): Set DECL_NAMELESS.

2009-07-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24524
	* trans-array.c (gfc_init_loopinfo): Initialize the reverse
	field.
	gfc_trans_scalarized_loop_end: If reverse set in dimension n,
	reverse the scalarization loop.
	gfc_conv_resolve_dependencies: Pass the reverse field of the
	loopinfo to gfc_dep_resolver.
	trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
	assignment by resetting loop.reverse.
	gfortran.h : Add the gfc_reverse enum.
	trans.h : Add the reverse field to gfc_loopinfo.
	dependency.c (gfc_check_dependency): Pass null to the new arg
	of gfc_dep_resolver.
	(gfc_check_section_vs_section): Check for reverse dependencies.
	(gfc_dep_resolver): Add reverse argument and deal with the loop
	reversal logic.
	dependency.h : Modify prototype for gfc_dep_resolver to include
	gfc_reverse *.

2010-07-23  Daniel Kraft  <d@domob.eu>

	PR fortran/44709
	* gfortran.h (gfc_find_symtree_in_proc): New method.
	* symbol.c (gfc_find_symtree_in_proc): New method.
	* match.c (match_exit_cycle): Look for loop name also in parent
	namespaces within current procedure.

2010-07-22  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45019
	* dependency.c (gfc_check_dependency): Add argument alising check.
	* symbol.c (gfc_symbols_could_alias): Add argument alising check.

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

	* trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
	now in the correct place.

2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44929
	* Revert my commit r162325.

2010-07-21  Daniel Kraft  <d@domob.eu>

	* trans.h (gfc_get_return_label): Removed.
	(gfc_generate_return): New method.
	(gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
	returning a tree directly.
	* trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
	(gfc_trans_block_construct): Update for new interface to
	`gfc_trans_deferred_vars'.
	* trans-decl.c (current_function_return_label): Removed.
	(current_procedure_symbol): New variable.
	(gfc_get_return_label): Removed.
	(gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
	returning a tree directly.
	(get_proc_result), (gfc_generate_return): New methods.
	(gfc_generate_function_code): Clean up and do init/cleanup here
	also with gfc_wrapped_block.  Remove return-label but rather
	return directly.

2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44929
	* fortran/match.c (match_type_spec): Check for derived type before
	intrinsic types.

2010-07-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42385
	* interface.c (matching_typebound_op): Add argument for the
	return of the generic name for the procedure.
	(build_compcall_for_operator): Add an argument for the generic
	name of an operator procedure and supply it to the expression.
	(gfc_extend_expr, gfc_extend_assign): Use the generic name in
	calls to the above procedures.
	* resolve.c (resolve_typebound_function): Catch procedure
	component calls for CLASS objects, check that the vtable is
	complete and insert the $vptr and procedure components, to make
	the call.
	(resolve_typebound_function): The same.
	* trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
	an allocatable scalar if it is a result.

2010-07-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44353
	* match.c (gfc_match_iterator): Reverted.

2010-07-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44353
	* match.c (gfc_match_iterator): Remove error that iterator
	cannot be INTENT(IN).

2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_free_ss): Don't free beyond ss rank.
	Access subscript through the "dim" field index.
	(gfc_trans_create_temp_array): Access ss info through the "dim" field
	index.
	(gfc_conv_array_index_offset): Ditto.
	(gfc_conv_loop_setup): Ditto.
	(gfc_conv_expr_descriptor): Ditto.
	(gfc_conv_ss_startstride): Ditto.  Update call to
	gfc_conv_section_startstride.
	(gfc_conv_section_startstride): Set values along the array dimension.
	Get array dimension directly from the argument.

2010-07-15  Jakub Jelinek  <jakub@redhat.com>

	* trans.h (gfc_string_to_single_character): New prototype.
	* trans-expr.c (string_to_single_character): Renamed to ...
	(gfc_string_to_single_character): ... this.  No longer static.
	(gfc_conv_scalar_char_value, gfc_build_compare_string,
	gfc_trans_string_copy): Adjust callers.
	* config-lang.in (gtfiles): Add fortran/trans-stmt.c.
	* trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
	(select_struct): Move to toplevel, add GTY(()).
	(gfc_trans_character_select): Optimize SELECT CASE
	with character length 1.

2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>

	* f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* trans-common.c: Likewise.
	* trans-decl.c: Likewise.
	* trans-types.c: Likewise.
	* trans.c: Likewise.

2010-07-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44936
	* resolve.c (resolve_typebound_generic_call): Resolve generic
	non-polymorphic type-bound procedure calls to the correct specific
	procedure.
	(resolve_typebound_subroutine): Remove superfluous code.

2010-07-15  Daniel Kraft  <d@domob.eu>

	PR fortran/44709
	* trans.h (struct gfc_wrapped_block): New struct.
	(gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
	(gfc_finish_wrapped_block): New method.
	(gfc_init_default_dt): Add new init code to block rather than
	returning it.
	* trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
	(gfc_trans_dummy_array_bias): Ditto.
	(gfc_trans_g77_array): Ditto.
	(gfc_trans_deferred_array): Ditto.
	* trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
	(add_expr_to_chain): New method based on old gfc_add_expr_to_block.
	(gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
	(gfc_finish_wrapped_block): New method.
	* trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
	(gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
	(gfc_trans_deferred_array): Ditto.
	* trans-decl.c (gfc_trans_dummy_character): Ditto.
	(gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
	(init_intent_out_dt): Ditto.
	(gfc_init_default_dt): Add new init code to block rather than
	returning it.
	(gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
	and cleanup code and put it all together.

2010-07-15  Jakub Jelinek  <jakub@redhat.com>

	* trans.h (gfc_build_compare_string): Add CODE argument.
	* trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
	gfc_build_compare_string.
	* trans-expr.c (gfc_conv_expr_op): Pass CODE to
	gfc_build_compare_string.
	(string_to_single_character): Rename len variable to length.
	(gfc_optimize_len_trim): New function.
	(gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
	or NE_EXPR and one of the strings is string literal with LEN_TRIM
	bigger than the length of the other string, they compare unequal.

	PR fortran/40206
	* trans-stmt.c (gfc_trans_character_select): Always use NULL for high
	in CASE_LABEL_EXPR and use NULL for low for the default case.

2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_section_upper_bound): Remove
	(gfc_conv_section_startstride): Don't set the upper bound in the
	vector subscript case.
	(gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound

2010-07-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44925
	* gfortran.h (gfc_is_data_pointer): Remove prototype.
	* dependency.c (gfc_is_data_pointer): Make it static.
	* intrinsic.texi: Update documentation on C_LOC.
	* resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
	and add a check for polymorphic variables.

2010-07-14  Jakub Jelinek  <jakub@redhat.com>

	* trans-expr.c (string_to_single_character): Also optimize
	string literals containing a single char followed only by spaces.
	(gfc_trans_string_copy): Remove redundant string_to_single_character
	calls.

	* trans-decl.c (gfc_build_intrinsic_function_decls,
	gfc_build_builtin_function_decls): Mark functions as
	DECL_PURE_P or TREE_READONLY.

2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
	instead of build_function_call_expr.
	* trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.

2010-07-13  Tobias Burnus  <burnus@net-b.de>
	    Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/43665
	* trans.h (gfc_build_library_function_decl_with_spec): New prototype.
	* trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
	static.
	* trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.

2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/43665
	* trans-decl.c (gfc_build_intrinsic_function_decls): Add
	noclobber/noescape annotations to function calls.
	(gfc_build_builtin_function_decls): Likewise.

2010-07-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44434
	PR fortran/44565
	PR fortran/43945
	PR fortran/44869
	* gfortran.h (gfc_find_derived_vtab): Modified prototype.
	* class.c (gfc_build_class_symbol): Modified call to
	'gfc_find_derived_vtab'.
	(add_proc_component): Removed, moved code into 'add_proc_comp'.
	(add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
	generics.
	(add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
	Removed treatment of generics.
	(copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
	Call 'add_proc_comp' instead of duplicating code.
	(add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
	and 'declared'.
	(add_generic_specifics,add_generics_to_declared_vtab): Removed.
	(gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
	Removed treatment of generics.
	* iresolve.c (gfc_resolve_extends_type_of): Modified call to
	'gfc_find_derived_vtab'.
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Removed treatment of generics.
	(resolve_select_type,resolve_fl_derived): Modified call to
	'gfc_find_derived_vtab'.
	* trans-decl.c (gfc_get_symbol_decl): Ditto.
	* trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
	Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37077
	* trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
	internal unit.

2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>

	* expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
	* resolve.c (build_default_init_expr): Ditto.

2010-07-11  Tobias Burnus  <burnus@net-b.de>

	PR fortran/44702
	* module.c (sort_iso_c_rename_list): Remove.
	(import_iso_c_binding_module,use_iso_fortran_env_module):
	Allow multiple imports of the same symbol.

2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>

	* arith.c (gfc_arith_done_1): Release mpfr internal caches.

2010-07-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44869
	* decl.c (build_sym,attr_decl1): Only build the class container if the
	symbol has sufficient attributes.
	* expr.c (gfc_check_pointer_assign): Use class_pointer instead of
	pointer attribute for classes.
	* match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
	* module.c (MOD_VERSION): Bump.
	(enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
	(mio_symbol_attribute): Handle class_pointer attribute.
	* parse.c (parse_derived): Use class_pointer instead of pointer
	attribute for classes.
	* primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
	* resolve.c (resolve_structure_cons,resolve_deallocate_expr,
	resolve_allocate_expr,resolve_fl_derived): Ditto.
	(resolve_fl_var_and_proc): Check for class_ok attribute.

2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-io.c (gfc_build_st_parameter): Update calls to
	gfc_add_field_to_struct.
	* trans-stmt.c (ADD_FIELD): Ditto.
	* trans-types.c
	(gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
	C_ADDRESS field.
	(gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
	fieldlist, remove fieldlist from argument list.
	(gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
	and remove fieldlist from argument list.
	(gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
	gfc_get_mixed_entry_union): Move setting
	TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
	* trans-types.h (gfc_add_field_to_struct): Update prototype.

2010-07-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44773
	* trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
	if the lhs has never been host associated, as well as not being
	use associated, a pointer or a target.
	* resolve.c (resolve_variable): Mark variables that are host
	associated.
	* gfortran.h: Add the host_assoc bit to the symbol_attribute
	structure.

2010-07-09  Janus Weil  <janus@gcc.gnu.org>

	* intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
	STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
	SIZEOF and C_SIZEOF.

2010-07-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44649
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
	* intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
	gfc_resolve_storage_size): New prototypes.
	* check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
	* intrinsic.c (add_functions): Add STORAGE_SIZE.
	* iresolve.c (gfc_resolve_storage_size): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
	arguments.
	(gfc_conv_intrinsic_storage_size): New function.
	(gfc_conv_intrinsic_function): Handle STORAGE_SIZE.

2010-07-08  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/44847
	* match.c (match_exit_cycle): Error on EXIT also from collapsed
	!$omp do loops.  Error on CYCLE to non-innermost collapsed
	!$omp do loops.

2010-07-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* array.c (gfc_match_array_ref): Better error message for
	coarrays with too few ranks.
	(match_subscript): Move one diagnostic to caller.
	* gfortran.h (gfc_get_corank): Add prottype.
	* expr.c (gfc_get_corank): New function.
	* iresolve.c (resolve_bound): Fix rank for cobounds.
	(gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
	gfc_resolve_ucobound, gfc_resolve_this_image): Update
	resolve_bound call.

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

	PR fortran/44742
	* array.c (gfc_expand_constructor): Add optional diagnostic.
	* gfortran.h (gfc_expand_constructor): Update prototype.
	* expr.c (gfc_simplify_expr, check_init_expr,
	gfc_reduce_init_expr): Update gfc_expand_constructor call.
	* resolve.c (gfc_resolve_expr): Ditto.

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

	* trans-decl.c: Include diagnostic-core.h besides toplev.h.
	* trans-intrinsic.c: Ditto.
	* trans-types.c: Ditto.
	* convert.c: Include diagnostic-core.h instead of toplev.h.
	* options.c: Ditto.
	* trans-array.c: Ditto.
	* trans-const.c: Ditto.
	* trans-expr.c: Ditto.
	* trans-io.c: Ditto.
	* trans-openmp.c: Ditto.
	* trans.c: Ditto.

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

	PR fortran/PR44693
	* check.c (dim_rank_check):  Also check intrinsic functions.
	Adjust permissible rank for functions which reduce the rank of
	their argument.  Spread is an exception, where DIM can
	be one larger than the rank of array.

2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44797
	* fortran/io.c (resolve_tag): Check EXIST tag is a default logical.

2010-07-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44596
	* trans-types.c (gfc_get_derived_type): Derived type fields
	with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
	but build_pointer_type_for_mode must be used for this.

2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>

	* trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
	type of gfc_conv_procedure_call.
	(conv_generic_with_optional_char_arg): Likewise.
	* trans-stmt.c (gfc_trans_call): Likewise.
	* trans-expr.c (gfc_conv_function_expr): Likewise.
	(gfc_conv_procedure_call): Use build_call_vec instead of
	build_call_list.

2010-07-04  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.

2010-07-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44596
	PR fortran/44745
	* trans-types.c (gfc_get_derived_type): Derived type fields
	with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.

2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/44662
	* decl.c (match_procedure_in_type): Clear structure before using.
	(gfc_match_generic): Ditto.

2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
	* trans-types.c (gfc_add_field_to_struct_1): New function, most
	of which comes from...
	(gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
	(gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
	building fields.
	(gfc_get_array_descriptor_base): Likewise.
	(gfc_get_mixed_entry_union): Likewise.
	(gfc_get_derived_type): Add extra chain parameter for
	gfc_add_field_to_struct.
	* trans-stmt.c (gfc_trans_character_select): Likewise.
	* trans-io.c (gfc_build_st_parameter): Likewise.

2010-06-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44718
	* resolve.c (is_external_proc): Prevent procedure pointers from being
	regarded as external procedures.

2010-06-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44696
	* trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
	passed as second argument of ASSOCIATED.

2010-06-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44582
	* trans-expr.c (arrayfunc_assign_needs_temporary): New function
	to determine if a function assignment can be made without a
	temporary.
	(gfc_trans_arrayfunc_assign): Move all the conditions that
	suppress the direct function call to the above new functon and
	call it.

2010-06-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40158
	* interface.c (argument_rank_mismatch): New function.
	(compare_parameter): Call new function instead of generating
	the error directly.

2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-openmp.c (dovar_init): Define.  Define VECs containing it.
	(gfc_trans_omp_do): Use a VEC to accumulate variables and their
	initializers.

2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in: Update dependencies.

2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>

	* gfortran.h (gfc_code): Split backend_decl field into cycle_label
	and exit_label fields.
	* trans-openmp.c (gfc_trans_omp_do): Assign to new fields
	individually.
	* trans-stmt.c (gfc_trans_simple_do): Likewise.
	(gfc_trans_do): Likewise.
	(gfc_trans_do_while): Likewise.
	(gfc_trans_cycle): Use cycle_label directly.
	(gfc_trans_exit): Use exit_label directly.

2010-06-27  Daniel Kraft  <d@domob.eu>

	* dump-parse-tree.c (show_symbol): Dump target-expression for
	associate names.
	(show_code_node): Make distinction between BLOCK and ASSOCIATE.
	(show_namespace): Use show_level for correct indentation of
	"inner namespaces" (contained procedures or BLOCK).

2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/44678
	* dump-parse-tree.c (show_code_node):  Show namespace for
	EXEC_BLOCK.

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

	* decl.c (gfc_match_decl_type_spec): Support
	TYPE(intrinsic-type-spec).

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

	* intrinsic.h (gfc_check_selected_real_kind,
	gfc_simplify_selected_real_kind): Update prototypes.
	* intrinsic.c (add_functions): Add radix support to
	selected_real_kind.
	* check.c (gfc_check_selected_real_kind): Ditto.
	* simplify.c (gfc_simplify_selected_real_kind): Ditto.
	* trans-decl.c (gfc_build_intrinsic_function_decls):
	Change call from selected_real_kind to selected_real_kind2008.
	* intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
	(PRECISION, RANGE, RADIX): Add cross @refs.

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

	* decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
	* gfortran.texi (_gfortran_set_options): Update for
	GFC_STD_F2008_OBS addition.
	* libgfortran.h: Add GFC_STD_F2008_OBS.
	* options.c (set_default_std_flags, gfc_handle_option): Handle
	GFC_STD_F2008_OBS.
	io.c (check_format): Fix allow_std check.

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

	* decl.c (gfc_match_entry): Allow END besides
	END SUBROUTINE/END FUNCTION for contained procedures.

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

	* parse.c (next_free, next_fixed): Allow ";" as first character.

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

	PR fortran/44614
	* decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.

2010-06-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44616
	* resolve.c (resolve_fl_derived): Avoid checking for abstract on class
	containers.

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

	PR fortran/40632
	* interface.c (compare_parameter): Add gfc_is_simply_contiguous
	checks.
	* symbol.c (gfc_add_contiguous): New function.
	(gfc_copy_attr, check_conflict): Handle contiguous attribute.
	* decl.c (match_attr_spec): Ditto.
	(gfc_match_contiguous): New function.
	* resolve.c (resolve_fl_derived, resolve_symbol): Handle
	contiguous.
	* gfortran.h (symbol_attribute): Add contiguous.
	(gfc_is_simply_contiguous): Add prototype.
	(gfc_add_contiguous): Add prototype.
	* match.h (gfc_match_contiguous): Add prototype.
	* parse.c (decode_specification_statement,
	decode_statement): Handle contiguous attribute.
	* expr.c (gfc_is_simply_contiguous): New function.
	* dump-parse-tree.c (show_attr): Handle contiguous.
	* module.c (ab_attribute, attr_bits, mio_symbol_attribute):
	Ditto.
	* trans-expr.c (gfc_add_interface_mapping): Copy
	attr.contiguous.
	* trans-array.c (gfc_conv_descriptor_stride_get,
	gfc_conv_array_parameter): Handle contiguous arrays.
	* trans-types.c (gfc_build_array_type, gfc_build_array_type,
	gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
	Ditto.
	* trans.h (gfc_array_kind): Ditto.
	* trans-decl.c (gfc_get_symbol_decl): Ditto.

2010-06-20  Joseph Myers  <joseph@codesourcery.com>

	* options.c (gfc_handle_option): Don't handle N_OPTS.

2010-06-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44584
	* resolve.c (resolve_fl_derived): Reverse ordering of conditions
	to avoid ICE.

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

	PR fortran/44556
	* resolve.c (resolve_allocate_deallocate): Properly check
	part-refs in stat=/errmsg= for invalid use.

2010-06-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44558
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Return directly in case of an error.

2010-06-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44549
	* gfortran.h (gfc_get_typebound_proc): Modified Prototype.
	* decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
	structure to each procedure in a procedure list.
	* module.c (mio_typebound_proc): Add NULL argument to
	'gfc_get_typebound_proc'.
	* symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
	to initialize the new structure.

2010-06-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43388
	* gfortran.h (gfc_expr): Add new member 'mold'.
	* match.c (gfc_match_allocate): Implement the MOLD tag.
	* resolve.c (resolve_allocate_expr): Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-06-15  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/44536
	* trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
	OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
	GFC_DECL_SAVED_DESCRIPTOR set.
	(gfc_omp_report_decl): New function.
	* trans.h (gfc_omp_report_decl): New prototype.
	* f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.

2010-06-13  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31588
	PR fortran/43954
	* gfortranspec.c (lang_specific_driver): Removed deprecation
	warning for -M.
	* lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
	* lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
	* cpp.h (gfc_cpp_makedep): New.
	(gfc_cpp_add_dep): New.
	(gfc_cpp_add_target): New.
	* cpp.c (gfc_cpp_option): Add deps* members.
	(gfc_cpp_makedep): New.
	(gfc_cpp_add_dep): New.
	(gfc_cpp_add_target): New.
	(gfc_cpp_init_options): Initialize new options.
	(gfc_cpp_handle_option): Handle new options.
	(gfc_cpp_post_options): Map new options to libcpp-options.
	(gfc_cpp_init): Handle deferred -MQ and -MT options.
	(gfc_cpp_done): If requested, write dependencies to file.
	* module.c (gfc_dump_module): Add a module filename as target.
	* scanner.c (open_included_file): New parameter system; add the
	included file as dependency.
	(gfc_open_included_file): Add the included file as dependency.
	(gfc_open_intrinsic_module): Likewise.
	* invoke.texi: Removed deprecation warning for -M.
	* gfortran.texi: Removed Makefile-dependencies project.

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

        * resolve.c (resolve_global_procedure): Improved checking if an
        explicit interface is required.

2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans-decl.c (gfc_build_intrinsic_function_decls): Fix
	return type.
	* trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
	(gfc_conv_intrinsic_ttynam): Likewise.
	(gfc_conv_intrinsic_trim): Likewise.

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

	PR fortran/40117
	* decl.c (match_procedure_in_type): Allow procedure lists (F08).

2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.

2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* mathbuiltins.def: Add builtins that do not directly correspond
	to a Fortran intrinsic, with new macro OTHER_BUILTIN.
	* f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
	* trans-intrinsic.c (gfc_intrinsic_map_t): Remove
	code_{r,c}{4,8,10,16} fields. Add
	{,complex}{float,double,long_double}_built_in fields.
	(gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
	DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
	definition of OTHER_BUILTIN.
	(real_compnt_info): Remove unused struct.
	(builtin_decl_for_precision, builtin_decl_for_float_kind): New
	functions.
	(build_round_expr): Call builtin_decl_for_precision instead of
	series of if-else.
	(gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
	instead of a switch.
	(gfc_build_intrinsic_lib_fndecls): Match
	{real,complex}{4,8,10,16}decl into the C-style built_in_decls.
	(gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
	kinds.
	(gfc_conv_intrinsic_lib_function): Go through all the extended
	gfc_intrinsic_map.
	(gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
	instead of a switch.
	(gfc_conv_intrinsic_abs): Likewise.
	(gfc_conv_intrinsic_mod): Likewise.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_fraction): Likewise.
	(gfc_conv_intrinsic_nearest): Likewise.
	(gfc_conv_intrinsic_spacing): Likewise.
	(gfc_conv_intrinsic_rrspacing): Likewise.
	(gfc_conv_intrinsic_scale): Likewise.
	(gfc_conv_intrinsic_set_exponent): Likewise.

2010-06-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42051
	PR fortran/43896
	* trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
	functions with CLASS formal arguments.

2010-06-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44207
	* resolve.c (conformable_arrays): Handle allocatable components.

2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/38273
	* gfortran.texi: Document that Cray pointers cannot be function
	results.

2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36234
	* gfortran.texi: Document lack of support for syntax
	"complex FUNCTION name*16()", and existence of alternative
	legacy syntax "complex*16 FUNCTION name()".

2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/43032
	* intrinsic.texi (FLUSH): Note the difference between FLUSH and
	POSIX's fsync(), and how to call the latter from Fortran code.

2010-06-10  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/44457
	* interface.c (compare_actual_formal): Reject actual arguments with
	array subscript passed to ASYNCHRONOUS dummys.

2010-06-10  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	* gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
	(struct gfc_symbol): New field `assoc'.
	(struct gfc_association_list): New struct.
	(struct gfc_code): New struct `block' in union, move `ns' there
	and add association list.
	(gfc_free_association_list): New method.
	(gfc_has_vector_subscript): Made public;
	* match.h (gfc_match_associate): New method.
	* parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
	* decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
	* interface.c (gfc_has_vector_subscript): Made public.
	(compare_actual_formal): Rename `has_vector_subscript' accordingly.
	* match.c (gfc_match_associate): New method.
	(gfc_match_select_type): Change reference to gfc_code's `ns' field.
	* primary.c (match_variable): Don't allow names associated to expr here.
	* parse.c (decode_statement): Try matching ASSOCIATE statement.
	(case_exec_markers, case_end): Add ASSOCIATE statement.
	(gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
	(parse_associate): New method.
	(parse_executable): Handle ST_ASSOCIATE.
	(parse_block_construct): Change reference to gfc_code's `ns' field.
	* resolve.c (resolve_select_type): Ditto.
	(resolve_code): Ditto.
	(resolve_block_construct): Ditto and add comment.
	(resolve_select_type): Set association list in generated BLOCK to NULL.
	(resolve_symbol): Resolve associate names.
	* st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
	and free association list.
	(gfc_free_association_list): New method.
	* symbol.c (gfc_new_symbol): NULL new field `assoc'.
	* trans-stmt.c (gfc_trans_block_construct): Change reference to
	gfc_code's `ns' field.

2010-06-10  Kai Tietz  <kai.tietz@onevision.com>

	* error.c (error_print): Pre-initialize loc by NULL.
	* openmp.c (resolve_omp_clauses): Add explicit
	braces to avoid ambigous else.
	* array.c (match_subscript): Pre-initialize m to MATCH_ERROR.

2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* gfc-internals.texi: Move to GFDL 1.3.
	* gfortran.texi: Ditto.
	* intrinsic.texi: Ditto.
	* invoke.texi: Ditto.

2010-06-09  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/44347
        * check.c (gfc_check_selected_real_kind): Verify that the
        actual arguments are scalar.

2010-06-09  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/44359
	* intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.

2010-06-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44430
	* dump-parse-tree.c (show_symbol): Avoid infinite loop.

2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* fortran/symbol.c (check_conflict):  Remove an invalid conflict check.

2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* fortran/intrinsic.c (add_functions): Change gfc_check_btest,
	gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
	* fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
	gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
	gfc_check_bitfcn.
	* fortran/check.c (nonnegative_check, less_than_bitsize1, 
	less_than_bitsize2): New functions.
	(gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
	nonnegative_check and less_than_bitsize1.
	(gfc_check_ibclr, gfc_check_ibset): Removed.
	(gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
	less_than_bitsize1.

2010-06-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44211
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Resolve references.

2010-06-09  Kai Tietz  <kai.tietz@onevision.com>

	* resolve.c (resolve_deallocate_expr): Avoid warning
	about possible use of iunitialized sym.
	(resolve_allocate_expr): Pre-initialize sym by NULL.

2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/43040
	* f95-lang.c (gfc_init_builtin_functions): Remove comment.

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
	allocation.
	(gfc_get_array_type_bounds): Likewise.

	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
	(gfc_find_module): Likewise.

	* f95-lang.c (pushlevel): Likewise.

	* trans.h (struct lang_type): Add variable_size GTY option.
	(struct lang_decl): Likewise.

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

	PR fortran/44446
	* symbol.c (check_conflict): Move protected--external/procedure check ...
	* resolve.c (resolve_select_type): ... to the resolution stage.

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

	* options.c (gfc_handle_option): Fix -fno-recursive.

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

	* gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
	* gfortran.texi (copyrights-gfortran): Ditto.

2010-06-07  Joseph Myers  <joseph@codesourcery.com>

	* lang.opt (fshort-enums): Define using Var and VarExists.
	* options.c (gfc_handle_option): Don't set flag_short_enums here.

2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43945
	* resolve.c (get_declared_from_expr): Move to before
	resolve_typebound_generic_call.  Make new_ref and class_ref
	ignorable if set to NULL.
	(resolve_typebound_generic_call): Once we have resolved the
	generic call, check that the specific instance is that which
	is bound to the declared type.
	(resolve_typebound_function,resolve_typebound_subroutine): Avoid
	freeing 'class_ref->next' twice.

2010-06-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43895
	* trans-array.c (structure_alloc_comps): Dereference scalar
	'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
	TREE_TYPE (decl).

2010-06-04  Joseph Myers  <joseph@codesourcery.com>

	* gfortranspec.c (append_arg, lang_specific_driver): Use
	GCC-specific formats in diagnostics.

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

	PR fortran/44360
	* parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
	symbols.

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

	PR fortran/44371
	* match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
	condition block.

2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>

	* fortran/gfortran.texi:  Fix typos in description of variable-format-
	expressions.

2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36928
	* dependency.c (gfc_check_section_vs_section):  Check
	for interleaving array assignments without conflicts.

2010-05-30  Janus Weil  <janus@gcc.gnu.org>

	* gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
	$data component of a class container.
	* gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
	* gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
	gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
	* gcc/fortran/interface.c (matching_typebound_op): Ditto.
	* gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
	* gcc/fortran/parse.c (parse_derived): Ditto.
	* gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
	gfc_expr_attr): Ditto.
	* gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
	resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
	resolve_fl_var_and_proc, resolve_typebound_procedure,
	resolve_fl_derived): Ditto.
	* gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
	* gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
	CLASS_DATA.
	* gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
	gfc_trans_deferred_vars): Ditto.
	* gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.

2010-05-28  Tobias Burnus  <burnus@net-b.de>

	* options.c (gfc_handle_option): Fix handling of -fno-whole-file.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* gfortranspec.c (append_arg, lang_specific_driver): Use
	fatal_error instead of fatal.  Use warning instead of fprintf for
	warnings.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
	* module.c (write_char, gfc_dump_module, gfc_use_module): Use
	xstrerror instead of strerror.

2010-05-26  Joseph Myers  <joseph@codesourcery.com>

	* cpp.c (cb_cpp_error): Save and restore
	global_dc->warn_system_headers, not variable warn_system_headers.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* trans-common.c: Do not include rtl.h, include output.h instead.
	* trans-decl.c: Likewise.

2010-05-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40011
	* resolve.c (resolve_global_procedure): Resolve the gsymbol's
	namespace before trying to reorder the gsymbols.

2010-05-25  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/30668
	PR fortran/31346
	PR fortran/34260
	* resolve.c (resolve_global_procedure): Add check for global
	procedures with implicit interfaces and assumed-shape or optional
	dummy arguments. Verify that function return type, kind and string
	lengths match.

2010-05-21  Tobias Burnus  <burnus@net-b.de>

	* gfortran.h: Do not include system.h.
	* bbt.c: Include system.h.
	* data.c: Ditto.
	* dependency.c: Ditto.
	* dump-parse-tree.c: Ditto.
	* arith.h: Do not include gfortran.h.
	* constructor.h: Do not include gfortran.h and splay-tree.h.
	* match.h: Do not include gfortran.h.
	* parse.h: Ditto.
	* target-memory.h: Ditto.
	* openmp.c: Do not include toplev.h and target.h.
	* trans-stmt.c: Ditto not include toplev.h.
	* primary.c: Ditto.
	* trans-common.c: Tell why toplev.h is needed. And
	do not include target.h.
	* trans-expr.c: Tell why toplev.h is needed.
	* trans-array.c: Ditto.
	* trans-openmp.c: Ditto.
	* trans-const.c: Ditto.
	* trans.c: Ditto.
	* trans-types.c: Ditto.
	* trans-io.c: Ditto.
	* trans-decl.c: Ditto.
	* scanner.c: Ditto.
	* convert.c: Ditto.
	* trans-intrinsic.c: Ditto.
	* options.c: Ditto.

2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR fortran/43851
	* match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
	before returning MATCH_ERROR. Add check for scalar. Add check for
	default integer kind.

2010-05-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44212
	* match.c (gfc_match_select_type): On error jump back out of the local
	namespace.
	* parse.c (parse_derived): Defer creation of vtab symbols to resolution
	stage, more precisely to ...
	* resolve.c (resolve_fl_derived): ... this place.

2010-05-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44213
	* resolve.c (ensure_not_abstract): Allow abstract types with
	non-abstract ancestors.

2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>

	* trans-const.c: Include realmpfr.h.
	* Make-lang.in: Update dependencies.

2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>

	* trans-const.c, trans-types.c, trans-intrinsic.c:
	Clean up redundant includes.

2010-05-20  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/38407
        * lang.opt (Wunused-dummy-argument): New option.
        * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
        * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
        (set_Wall): Enable warn_unused_dummy_argument.
        (gfc_handle_option): Set warn_unused_dummy_argument according to
        command line.
        * trans-decl.c (generate_local_decl): Separate warnings about
        unused variables and unused dummy arguments.
        * invoke.texi: Documented new option.

2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>

	* trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
	(gfc_conv_string_tmp): Do not assert type comparibilty.
	*  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
	(gfc_conv_expr_descriptor): Remove assert.
	* trans-common.c: Clarify why rtl.h and tm.h are included.
	* trans-openmp.c: Do not include ggc.h and real.h.
	Explain why gimple.h is included.
	* trans-const.c: Do not include ggc.h.
	* trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
	* trans.c: Do not include ggc.h and real.h.
	Explain why gimple.h is included.
	* trans-types.c: Do not include tm.h.  Explain why langhooks.h
	and dwarf2out.h are included.
	* trans-io.c: Do not include gimple.h and real.h.
	* trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
	* trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
	is included.

2010-05-20  Tobias Burnus  <burnus@net-b.de>

	* options.c (gfc_init_options,gfc_post_options): Enable
	flag_associative_math by default.

2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR fortran/43851
	* trans-stmt.c (gfc_trans_stop): Add generation of call to
	gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
	blank STOP, handling a null expression. (gfc_trans_pause): Use
	pause_string for blank PAUSE.
	* trans.h: Add external function declaration for error_stop_numeric.
	* trans-decl.c (gfc_build_builtin_function_decls): Add the building of
	the declaration for the library call. Adjust whitespaces.
	* match.c (gfc_match_stopcode): Remove use of the actual stop code to
	signal no stop code. Match the expression following the stop and pass
	that to the translators. Remove the old use of digit matching.  Add
	checks that the stop_code expression is INTEGER or CHARACTER, constant,
	and if CHARACTER, default character KIND.

2010-05-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/44055
	* lang.opt (Wconversion-extra): New option.
	* gfortran.h (gfc_option_t): Add warn_conversion_extra.
	* options.c (gfc_init_options): Disable -Wconversion-extra by default.
	(set_Wall): Enable -Wconversion.
	(gfc_handle_option): Set warn_conversion_extra.
	* intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
	introduced for -Wconversion if -Wconversion-extra is present.
	* invoke.texi: Add -Wconversion to -Wall; document new behaviour of
	-Wconversion; document -Wconversion-extra.

2010-05-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/42360
	* gfortran.h (gfc_has_default_initializer): New.
	* expr.c (gfc_has_default_initializer): New.
	* resolve.c (has_default_initializer): Removed, use
	gfc_has_default_initializer() instead. Updated all callers.
	* trans-array.c (has_default_initializer): Removed, use
	gfc_has_default_initializer() instead. Updated all callers.
	* trans-decl.c (generate_local_decl): Do not check the
	first component only to check for initializers, but use
	gfc_has_default_initializer() instead.

2010-05-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/38404
	* primary.c (match_string_constant): Move start_locus just inside 
	the string.
	* data.c (create_character_intializer): Clarified truncation warning.

2010-05-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/34505
	* intrinsic.h (gfc_check_float): New prototype.
	(gfc_check_sngl): New prototype.
	* check.c (gfc_check_float): New.
	(gfc_check_sngl): New.
	* intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
	to be a specific for REAL. Added check routines for FLOAT, DFLOAT
	and SNGL.
	* intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
	added them to the list of specifics of REAL instead.

2010-05-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43990
	* trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
	This is now handled via 'gfc_class_null_initializer'.

2010-05-17  Janus Weil  <janus@gcc.gnu.org>

	* class.c (gfc_add_component_ref,gfc_class_null_initializer,
	gfc_build_class_symbol,add_proc_component,add_proc_comps, 
	add_procs_to_declared_vtab1,copy_vtab_proc_comps,
	add_procs_to_declared_vtab,add_generic_specifics, 
	add_generics_to_declared_vtab,gfc_find_derived_vtab,
	find_typebound_proc_uop,gfc_find_typebound_proc,
	gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
	gfc_get_tbp_symtree): Moved here from other places.
	* expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
	class.c.
	* gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
	gfc_find_typebound_proc,gfc_find_typebound_user_op,
	gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
	gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
	* Make-lang.in: Add class.o.
	* symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
	add_procs_to_declared_vtab1,copy_vtab_proc_comps,
	add_procs_to_declared_vtab,add_generic_specifics,
	add_generics_to_declared_vtab,gfc_find_derived_vtab,
	find_typebound_proc_uop,gfc_find_typebound_proc,
	gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
	gfc_get_tbp_symtree): Move to class.c.

2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-types.c (gfc_init_types): Use build_function_type_list.
	(gfc_get_ppc_type): Likewise.
	* trans-decl.c (gfc_generate_constructors): Likewise.
	* f95-lang.c (build_builtin_fntypes): Likewise.
	(gfc_init_builtin_functions): Likewise.
	(DEF_FUNCTION_TYPE_0): Likewise.
	(DEF_FUNCTION_TYPE_1): Likewise.
	(DEF_FUNCTION_TYPE_2): Likewise.
	(DEF_FUNCTION_TYPE_3): Likewise.
	(DEF_FUNCTION_TYPE_4): Likewise.
	(DEF_FUNCTION_TYPE_5): Likewise.
	(DEF_FUNCTION_TYPE_6): Likewise.
	(DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
	(DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
 
2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-array.c (gfc_trans_array_constructor_value): Use
	build_constructor instead of build_constructor_from_list.
	(gfc_build_constant_array_constructor): Likewise.
	* trans-decl.c (create_main_function): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Likewise.

2010-05-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44044
	* resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
	(resolve_fl_variable_derived): ... this place.
	(resolve_symbol): Make sure function symbols (and their result
	variables) are not resolved twice.

2010-05-16  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35779
	* array.c (match_array_list): Revert change from 2010-05-13.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* trans-decl.c (module_htab_decls_hash): Revert last change.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.

2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* options.c (set_Wall): Remove special logic for Wuninitialized
	without -O.

2010-05-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44154
	PR fortran/42647
	* trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
	if branches.

2010-05-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43207
	PR fortran/43969
	* gfortran.h (gfc_class_null_initializer): New prototype.
	* expr.c (gfc_class_null_initializer): New function to build a NULL
	initializer for CLASS pointers.
	* symbol.c (gfc_build_class_symbol): Modify internal naming of class
	containers. Remove default NULL initialization of $data component.
	* trans.c (gfc_allocate_array_with_status): Fix wording of an error 
	message.
	* trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
	Use new function 'gfc_class_null_initializer'.
	* trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
	class variables.

2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44135
	* fortran/interface.c (get_sym_storage_size): Use signed instead of
	unsigned mpz_get_?i routines.

2010-05-14  Jakub Jelinek  <jakub@redhat.com>

	* trans.c (trans_code): Set backend locus early.
	* trans-decl.c (gfc_get_fake_result_decl): Use source location
	of the function instead of current input_location.

2010-05-13  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35779
	* intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
	Updated all usages.
	* expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
	* array.c (match_array_list): Pass on gfc_init_expr_flag when matching
	iterators.

2010-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/44036
	* openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
	variable lists.
	* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
	by reference dummy procedures or non-dummy procedure pointers.
	(gfc_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.

2010-05-11  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/43711
	* openmp.c (gfc_match_omp_taskwait): Report unexpected characters
	after OMP statement.
	(gfc_match_omp_critical): Likewise.
	(gfc_match_omp_flush): Likewise.
	(gfc_match_omp_workshare): Likewise.
	(gfc_match_omp_master): Likewise.
	(gfc_match_omp_ordered): Likewise.
	(gfc_match_omp_atomic): Likewise.
	(gfc_match_omp_barrier): Likewise.
	(gfc_match_omp_end_nowait): Likewise.

2010-05-11  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31820
	* resolve.c (validate_case_label_expr): Removed FIXME.
	(resolve_select): Raise default warning on case labels out of range
	of the case expression.

2010-05-10  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/27866
	PR fortran/35003
	PR fortran/42809
	* intrinsic.c (gfc_convert_type_warn): Be more discriminative
	about conversion warnings.

2010-05-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44044
	* match.c (gfc_match_select_type): Move error message to
	resolve_select_type.
	* resolve.c (resolve_select_type): Error message moved here from
	gfc_match_select_type. Correctly set type of temporary.

2010-05-10  Richard Guenther  <rguenther@suse.de>

	* trans-decl.c (gfc_build_library_function_decl): Split out
	worker to ...
	(build_library_function_decl_1): ... this new function.
	Set a fnspec attribute if a specification was provided.
	(gfc_build_library_function_decl_with_spec): New function.
	(gfc_build_intrinsic_function_decls): Annotate internal_pack
	and internal_unpack.

2010-05-07  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/40728
	* intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
	as external.

2010-05-07  Jason Merrill  <jason@redhat.com>

	* trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
	to avoid -Wc++-compat warning.

2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 40989
	* options.c (gfc_handle_option): Add argument kind.
	* gfortran.h (gfc_handle_option): Update declaration.

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

	PR fortran/43985
	* trans-types.c (gfc_sym_type): Mark Cray pointees as
	GFC_POINTER_TYPE_P.

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

	PR fortran/32331
	* resolve.c (traverse_data_list): Rephrase error message for
	non-constant bounds in data-implied-do.

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

	PR fortran/24978
	* gfortran.h: Removed repeat count from constructor, removed
	all usages.
	* data.h (gfc_assign_data_value_range): Changed return value from
	void to gfc_try.
	* data.c (gfc_assign_data_value): Add location to constructor element.
	(gfc_assign_data_value_range): Call gfc_assign_data_value()
	for each element in range. Return early if an error was generated.
	* resolve.c (check_data_variable): Stop early if range assignment
	generated an error.

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

	PR fortran/43696
	* resolve.c (resolve_fl_derived): Some fixes for class variables.
	* symbol.c (gfc_build_class_symbol): Add separate class container for
	class pointers.

2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/43592
	* fortran/parse.c (parse_interface): Do not dereference a NULL pointer.

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

	PR fortran/18918
	* intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
	for lcobound, ucobound, image_index and this_image.
	* intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
	gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
	* iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
	gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
	functions.
	(gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.

2010-04-30  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	PR fortran/43931
	*  trans-types.c (gfc_get_array_descriptor_base): Fix index
	calculation for array descriptor types.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43896
	* symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
	initializers for PPC members of the vtabs.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42274
	* symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
	attribute for all PPC members of the vtypes.
	(copy_vtab_proc_comps): Copy the correct interface.
	* trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
	* trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
	a dummy argument and make sure all PPC members of the vtab are
	initialized correctly.
	(gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
	in call to gfc_trans_assign_vtab_procs.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43326
	* resolve.c (resolve_typebound_function): Renamed
	resolve_class_compcall.Do all the detection of class references
	here.
	(resolve_typebound_subroutine): resolve_class_typebound_call
	renamed. Otherwise same as resolve_typebound_function.
	(gfc_resolve_expr): Call resolve_typebound_function.
	(resolve_code): Call resolve_typebound_subroutine.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43492
	* resolve.c (resolve_typebound_generic_call): For CLASS methods
	pass back the specific symtree name, rather than the target
	name.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42353
	* resolve.c (resolve_structure_cons): Make the initializer of
	the vtab component 'extends' the same type as the component.

2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42680
	* interface.c (check_interface1): Pass symbol name rather than NULL to
	gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
	trap MULL. (gfc_compare_derived_types): Revert previous change
	incorporated incorrectly during merge from trunk, r155778.
	* resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
	than NULL to gfc_compare_interfaces.
	* symbol.c (add_generic_specifics): Likewise.

2010-02-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42353
	* interface.c (gfc_compare_derived_types): Add condition for vtype.
	* symbol.c (gfc_find_derived_vtab): Sey access to private.
	(gfc_find_derived_vtab): Likewise.
	* module.c (ab_attribute): Add enumerator AB_VTAB.
	(mio_symbol_attribute): Use new attribute, AB_VTAB.
	(check_for_ambiguous): Likewise.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41829
	* trans-expr.c (select_class_proc): Remove function.
	(conv_function_val): Delete reference to previous.
	(gfc_conv_derived_to_class): Add second argument to the call to
	gfc_find_derived_vtab.
	(gfc_conv_structure): Exclude proc_pointer components when
	accessing $data field of class objects.
	(gfc_trans_assign_vtab_procs): New function.
	(gfc_trans_class_assign): Add second argument to the call to
	gfc_find_derived_vtab.
	* symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
	implement holding off searching for the vptr derived type.
	(add_proc_component): New function.
	(add_proc_comps): New function.
	(add_procs_to_declared_vtab1): New function.
	(copy_vtab_proc_comps): New function.
	(add_procs_to_declared_vtab): New function.
	(void add_generic_specifics): New function.
	(add_generics_to_declared_vtab): New function.
	(gfc_find_derived_vtab): Add second argument to the call to
	gfc_find_derived_vtab. Add the calls to
	add_procs_to_declared_vtab and add_generics_to_declared_vtab.
	* decl.c (build_sym, build_struct): Use new arg in calls to
	gfc_build_class_symbol.
	* gfortran.h : Add vtype bitfield to symbol_attr. Remove the
	definition of struct gfc_class_esym_list. Modify prototypes
	of gfc_build_class_symbol and gfc_find_derived_vtab.
	* trans-stmt.c (gfc_trans_allocate): Add second argument to the
	call to gfc_find_derived_vtab.
	* module.c : Add the vtype attribute.
	* trans.h : Add prototype for gfc_trans_assign_vtab_procs.
	* resolve.c (resolve_typebound_generic_call): Add second arg
	to pass along the generic name for class methods.
	(resolve_typebound_call): The same.
	(resolve_compcall): Use the second arg to carry the generic
	name from the above. Remove the reference to class_esym.
	(check_members, check_class_members, resolve_class_esym,
	hash_value_expr): Remove functions.
	(resolve_class_compcall, resolve_class_typebound_call): Modify
	to use vtable rather than member by member calls.
	(gfc_resolve_expr): Modify second arg in call to
	resolve_compcall.
	(resolve_select_type): Add second arg in call to
	gfc_find_derived_vtab.
	(resolve_code): Add second arg in call resolve_typebound_call.
	(resolve_fl_derived): Exclude vtypes from check for late
	procedure definitions. Likewise for checking of explicit
	interface and checking of pass arg.
	* iresolve.c (gfc_resolve_extends_type_of): Add second arg in
	calls to gfc_find_derived_vtab.
	* match.c (select_type_set_tmp): Use new arg in call to
	gfc_build_class_symbol.
	* trans-decl.c (gfc_get_symbol_decl): Complete vtable if
	necessary.
	* parse.c (endType): Finish incomplete classes.

2010-04-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	PR fortran/43919
	* simplify.c (simplify_cobound): Handle scalar coarrays.

2010-04-27  Tobias Burnus  <burnus@net-b.de>

	* gfc-internals.texi: Update copyright year.
	* gfortran.texi: Ditto.
	* invoke.texi: Ditto.

2010-04-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* resolve.c (resolve_allocate_expr): Allow array coarrays.
	* trans-types.h (gfc_get_array_type_bounds): Update prototype.
	* trans-types.c (gfc_get_array_type_bounds,
	gfc_get_array_descriptor_base): Add corank argument.
	* trans-array.c (gfc_array_init_size): Handle corank.
	(gfc_trans_create_temp_array, gfc_array_allocate,
	gfc_conv_expr_descriptor): Add corank argument to call.
	* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.

2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/30073
	PR fortran/43793
	* trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
	of mucking with a tree directly.

2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43832
	* io.c (gfc_match_open): Remove branch to syntax error. Add call to
	gfc_error with new error message.

2010-04-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43841
	PR fortran/43843
	* trans-expr.c (gfc_conv_expr): Supply an address expression for
	GFC_SS_REFERENCE.
	(gfc_conv_expr_reference): Call gfc_conv_expr and return for
	GFC_SS_REFERENCE.
	* trans-array.c (gfc_add_loop_ss_code): Store the value rather
	than the address of a GFC_SS_REFERENCE.
	* trans.h : Change comment on GFC_SS_REFERENCE. 

2010-04-22  Richard Guenther  <rguenther@suse.de>

	PR fortran/43829
	* resolve.c (gfc_resolve_index): Wrap around ...
	(gfc_resolve_index_1): ... this.  Add parameter to allow
	any integer kind index type.
	(resolve_array_ref): Allow any integer kind for the start
	index of an array ref.

2010-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/43836
	* f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
	the decl.

2010-04-20  Harald Anlauf  <anlauf@gmx.de>

	* intrinsic.c (sort_actual): Remove 'is' in error message.

2010-04-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43227
	* resolve.c (resolve_fl_derived): If a component character
	length has not been resolved, do so now.
	(resolve_symbol): The same as above for a symbol character
	length.
	* trans-decl.c (gfc_create_module_variable): A 'length' decl is
	not needed for a character valued, procedure pointer.

	PR fortran/43266
	* resolve.c (ensure_not_abstract_walker): If 'overriding' is
	not found, return FAILURE rather than ICEing.

2010-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/43339
	* openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
	sequential loops private in the innermost containing task region.

2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* f95-lang.c (gfc_init_decl_processing): Remove second argument in call
	to build_common_tree_nodes.

2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/31538
	* fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
	gfc_msg_bounds by using 'Array bound mismatch' directly.
	(gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
	error message to include the mismatch in the extent of array bound.
	* fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
	* fortran/trans.h: Remove extern definition of gfc_msg_bounds.

2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.texi: Update information on temporary file locations.

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

	* trans-decl.c (gfc_build_qualified_array): Ensure
	ubound.N and lbound.N artificial variable names don't appear
	in debug info.

2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/30073
	* trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
	block of code.  Set name to the variable associated with the descriptor.

2010-04-15  Jakub Jelinek  <jakub@redhat.com>

	* trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
	on VAR_DECL LBOUND and/or UBOUND, even for -O1.

2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	* intrinsic.texi: Add the missing specific name of intrinsic
	procedure where the specific name is identical to the generic name.
	Fix inconsistent or mismatch in the argument names in intrinsic
	procedure descriptions.  Add the SCALAR allocatable description to
	ALLOCATED.

2010-04-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* array.c (gfc_find_array_ref): Handle codimensions.
	(gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
	* check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
	gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
	New functions.
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
	GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
	GFC_ISYM_UCOBOUND.
	* intrinsic.h (add_functions): Add this_image, image_index,
	lcobound and ucobound intrinsics.
	* intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
	gfc_check_image_index, gfc_check_this_image,
	gfc_simplify_image_index, gfc_simplify_lcobound,
	gfc_simplify_this_image, gfc_simplify_ucobound):
	New function prototypes.
	* intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
	IMAGE_INDEX): Document new intrinsic functions.
	* match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
	error fatal.
	* simplify.c (simplify_bound_dim): Handle coarrays.
	(simplify_bound): Update simplify_bound_dim call.
	(gfc_simplify_num_images): Add -fcoarray=none check.
	(simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
	gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.

2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43747
	* constructor.c: Fix typo in comment.
	* expr.c (find_array_section): Add check for max array limit.

2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>

	PR bootstrap/31400
	* gfortranspec.c (lookup_option): Check for -static and return
	OPTION_static.
	(lang_specific_driver): Break when OPTION_static is discovered.

2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* array.c (extract_element): Restore function from trunk.
	(gfc_get_array_element): Restore function from trunk.
	(gfc_expand_constructor): Restore check against
	flag_max_array_constructor.
	* constructor.c (node_copy_and_append): Delete unused.
	* gfortran.h: Delete comment and extra include.
	* constructor.h: Bump copyright and clean up TODO comments.
	* resolve.c: Whitespace.

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

	* simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
	with direct access access to elements. Adjusted prototype, fixed all
	callers.
	(gfc_simplify_dot_product): Removed duplicate check for zero-sized
	array.
	(gfc_simplify_matmul): Removed usage of ADVANCE macro.
	(gfc_simplify_spread): Removed workaround, directly insert elements
	at a given array position.
	(gfc_simplify_transpose): Likewise.
	(gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
	function calls.
	(gfc_simplify_unpack): Likewise.

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

	* simplify.c (only_convert_cmplx_boz): Renamed to ...
	(convert_boz): ... this and moved to start of file.
	(gfc_simplify_abs): Whitespace fix.
	(gfc_simplify_acos): Whitespace fix.
	(gfc_simplify_acosh): Whitespace fix.
	(gfc_simplify_aint): Whitespace fix.
	(gfc_simplify_dint): Whitespace fix.
	(gfc_simplify_anint): Whitespace fix.
	(gfc_simplify_and): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_dnint): Whitespace fix.
	(gfc_simplify_asin): Whitespace fix.
	(gfc_simplify_asinh): Moved creation of result-expr out of switch.
	(gfc_simplify_atan): Likewise.
	(gfc_simplify_atanh): Whitespace fix.
	(gfc_simplify_atan2): Whitespace fix.
	(gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
	(gfc_simplify_bessel_j1): Likewise.
	(gfc_simplify_bessel_jn): Likewise.
	(gfc_simplify_bessel_y0): Likewise.
	(gfc_simplify_bessel_y1): Likewise.
	(gfc_simplify_bessel_yn): Likewise.
	(gfc_simplify_ceiling): Reorderd statements.
	(simplify_cmplx): Use convert_boz(), check for constant arguments.
	Whitespace fix.
	(gfc_simplify_cmplx): Use correct default kind. Removed check for
	constant arguments.
	(gfc_simplify_complex): Replaced if-gate. Removed check for
	constant arguments.
	(gfc_simplify_conjg): Whitespace fix.
	(gfc_simplify_cos): Whitespace fix.
	(gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_dcmplx): Removed check for constant arguments.
	(gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
	(gfc_simplify_digits): Whitespace fix.
	(gfc_simplify_dim): Whitespace fix.
	(gfc_simplify_dprod): Reordered statements.
	(gfc_simplify_erf): Whitespace fix.
	(gfc_simplify_erfc): Whitespace fix.
	(gfc_simplify_epsilon): Whitespace fix.
	(gfc_simplify_exp): Whitespace fix.
	(gfc_simplify_exponent): Use convert_boz().
	(gfc_simplify_floor): Reorderd statements.
	(gfc_simplify_gamma): Whitespace fix.
	(gfc_simplify_huge): Whitespace fix.
	(gfc_simplify_iand): Whitespace fix.
	(gfc_simplify_ieor): Whitespace fix.
	(simplify_intconv): Use gfc_convert_constant().
	(gfc_simplify_int): Use simplify_intconv().
	(gfc_simplify_int2): Reorderd statements.
	(gfc_simplify_idint): Reorderd statements.
	(gfc_simplify_ior): Whitespace fix.
	(gfc_simplify_ishftc): Removed duplicate type check.
	(gfc_simplify_len): Use range_check() instead of manual range check.
	(gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
	(gfc_simplify_log): Whitespace fix.
	(gfc_simplify_log10): Whitespace fix.
	(gfc_simplify_minval): Whitespace fix.
	(gfc_simplify_maxval): Whitespace fix.
	(gfc_simplify_mod): Whitespace fix.
	(gfc_simplify_modulo): Whitespace fix.
	(simplify_nint): Reorderd statements.
	(gfc_simplify_not): Whitespace fix.
	(gfc_simplify_or): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
	(gfc_simplify_range): Removed unused result-variable. Whitespace fix.
	(gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
	(gfc_simplify_realpart): Whitespace fix.
	(gfc_simplify_selected_char_kind): Removed unused result-variable.
	(gfc_simplify_selected_int_kind): Removed unused result-variable.
	(gfc_simplify_selected_real_kind): Removed unused result-variable.
	(gfc_simplify_sign): Whitespace fix.
	(gfc_simplify_sin): Whitespace fix.
	(gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
	(gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
	(gfc_simplify_xor): Replaced if-gate by more common switch-over-type.

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

	* gfortran.h (gfc_start_constructor): Removed.
	(gfc_get_array_element): Removed.
	* array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
	instead. Fixed all callers.
	(extract_element): Removed.
	(gfc_expand_constructor): Temporarily removed check for
	max-array-constructor. Will be re-introduced later if still required.
	(gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
	instead. Fixed all callers.
	* expr.c (find_array_section): Replaced manual lookup of elements
	by gfc_constructor_lookup.

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

	* gfortran.h (gfc_get_null_expr): New prototype.
	(gfc_get_operator_expr): New prototype.
	(gfc_get_character_expr): New prototype.
	(gfc_get_iokind_expr): New prototype.
	* expr.c (gfc_get_null_expr): New.
	(gfc_get_character_expr): New.
	(gfc_get_iokind_expr): New.
	(gfc_get_operator_expr): Moved here from matchexp.c (build_node).
	* matchexp.c (build_node): Renamed and moved to
	expr.c (gfc_get_operator_expr). Reordered arguments to match 
	other functions. Fixed all callers.
	(gfc_get_parentheses): Use specific function to build expr.
	* array.c (gfc_match_array_constructor): Likewise.
	* arith.c (eval_intrinsic): Likewise.
	(gfc_hollerith2int): Likewise.
	(gfc_hollerith2real): Likewise.
	(gfc_hollerith2complex): Likewise.
	(gfc_hollerith2logical): Likewise.
	* data.c (create_character_intializer): Likewise.
	* decl.c (gfc_match_null): Likewise.
	(enum_initializer): Likewise.
	* io.c (gfc_match_format): Likewise.
	(match_io): Likewise.
	* match.c (gfc_match_nullify): Likewise.
	* primary.c (match_string_constant): Likewise.
	(match_logical_constant): Likewise.
	(build_actual_constructor): Likewise.
	* resolve.c (build_default_init_expr): Likewise.
	* symbol.c (generate_isocbinding_symbol): Likewise.
	(gfc_build_class_symbol): Likewise.
	(gfc_find_derived_vtab): Likewise.
	* simplify.c (simplify_achar_char): Likewise.
	(gfc_simplify_adjustl): Likewise.
	(gfc_simplify_adjustr): Likewise.
	(gfc_simplify_and): Likewise.
	(gfc_simplify_bit_size): Likewise.
	(gfc_simplify_is_iostat_end): Likewise.
	(gfc_simplify_is_iostat_eor): Likewise.
	(gfc_simplify_isnan): Likewise.
	(simplify_bound): Likewise.
	(gfc_simplify_leadz): Likewise.
	(gfc_simplify_len_trim): Likewise.
	(gfc_simplify_logical): Likewise.
	(gfc_simplify_maxexponent): Likewise.
	(gfc_simplify_minexponent): Likewise.
	(gfc_simplify_new_line): Likewise.
	(gfc_simplify_null): Likewise.
	(gfc_simplify_or): Likewise.
	(gfc_simplify_precision): Likewise.
	(gfc_simplify_repeat): Likewise.
	(gfc_simplify_scan): Likewise.
	(gfc_simplify_size): Likewise.
	(gfc_simplify_trailz): Likewise.
	(gfc_simplify_trim): Likewise.
	(gfc_simplify_verify): Likewise.
	(gfc_simplify_xor): Likewise.
	* trans-io.c (build_dt): Likewise.
	(gfc_new_nml_name_expr): Removed.

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

	* arith.h (gfc_constant_result): Removed prototype.
	* constructor.h (gfc_build_array_expr): Removed prototype.
	(gfc_build_structure_constructor_expr): Removed prototype.
	* gfortran.h (gfc_int_expr): Removed prototype.
	(gfc_logical_expr): Removed prototype.
	(gfc_get_array_expr): New prototype.
	(gfc_get_structure_constructor_expr): New prototype.
	(gfc_get_constant_expr): New prototype.
	(gfc_get_int_expr): New prototype.
	(gfc_get_logical_expr): New prototype.
	* arith.c (gfc_constant_result): Moved and renamed to
	expr.c (gfc_get_constant_expr). Fixed all callers.
	* constructor.c (gfc_build_array_expr): Moved and renamed to
	expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
	and kind. Fixed all callers.
	(gfc_build_structure_constructor_expr): Moved and renamed to
	expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
	to type and kind. Fixed all callers.
	* expr.c (gfc_logical_expr): Renamed to ...
	(gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
	(gfc_int_expr): Renamed to ...
	(gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
	callers.
	(gfc_get_constant_expr): New.
	(gfc_get_array_expr): New.
	(gfc_get_structure_constructor_expr): New.
	* simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
	instead.

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

	* constructor.h: New.
	* constructor.c: New.
	* Make-lang.in: Add new files to F95_PARSER_OBJS.
	* arith.c (reducy_unary): Use constructor API.
	(reduce_binary_ac): Likewise.
	(reduce_binary_ca): Likewise.
	(reduce_binary_aa): Likewise.
	* check.c (gfc_check_pack): Likewise.
	(gfc_check_reshape): Likewise.
	(gfc_check_unpack): Likewise.
	* decl.c (add_init_expr_to_sym): Likewise.
	(build_struct): Likewise.
	* dependency.c (gfc_check_dependency): Likewise.
	(contains_forall_index_p): Likewise.
	* dump-parse-tree.c (show_constructor): Likewise.
	* expr.c (free_expr0): Likewise.
	(gfc_copy_expr): Likewise.
	(gfc_is_constant_expr): Likewise.
	(simplify_constructor): Likewise.
	(find_array_element): Likewise.
	(find_component_ref): Likewise.
	(find_array_section): Likewise.
	(find_substring_ref): Likewise.
	(simplify_const_ref): Likewise.
	(scalarize_intrinsic_call): Likewise.
	(check_alloc_comp_init): Likewise.
	(gfc_default_initializer): Likewise.
	(gfc_traverse_expr): Likewise.
	* iresolve.c (check_charlen_present): Likewise.
	(gfc_resolve_reshape): Likewise.
	(gfc_resolve_transfer): Likewise.
	* module.c (mio_constructor): Likewise.
	* primary.c (build_actual_constructor): Likewise.
	(gfc_match_structure_constructor): Likewise.
	* resolve.c (resolve_structure_cons): Likewise.
	* simplify.c (is_constant_array_expr): Likewise.
	(init_result_expr): Likewise.
	(transformational_result): Likewise.
	(simplify_transformation_to_scalar): Likewise.
	(simplify_transformation_to_array): Likewise.
	(gfc_simplify_dot_product): Likewise.
	(simplify_bound): Likewise.
	(simplify_matmul): Likewise.
	(simplify_minval_maxval): Likewise.
	(gfc_simplify_pack): Likewise.
	(gfc_simplify_reshape): Likewise.
	(gfc_simplify_shape): Likewise.
	(gfc_simplify_spread): Likewise.
	(gfc_simplify_transpose): Likewise.
	(gfc_simplify_unpack): Likewise.q
	(gfc_convert_constant): Likewise.
	(gfc_convert_char_constant): Likewise.
	* target-memory.c (size_array): Likewise.
	(encode_array): Likewise.
	(encode_derived): Likewise.
	(interpret_array): Likewise.
	(gfc_interpret_derived): Likewise.
	(expr_to_char): Likewise.
	(gfc_merge_initializers): Likewise.
	* trans-array.c (gfc_get_array_constructor_size): Likewise.
	(gfc_trans_array_constructor_value): Likewise.
	(get_array_ctor_strlen): Likewise.
	(gfc_constant_array_constructor_p): Likewise.
	(gfc_build_constant_array_constructor): Likewise.
	(gfc_trans_array_constructor): Likewise.
	(gfc_conv_array_initializer): Likewise.
	* trans-decl.c (check_constant_initializer): Likewise.
	* trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
	(gfc_apply_interface_mapping_to_cons): Likewise.
	(gfc_trans_structure_assign): Likewise.
	(gfc_conv_structure): Likewise.
	* array.c (check_duplicate_iterator): Likewise.
	(match_array_list): Likewise.
	(match_array_cons_element): Likewise.
	(gfc_match_array_constructor): Likewise.
	(check_constructor_type): Likewise.
	(check_constructor): Likewise.
	(expand): Likewise.
	(expand_constructor): Likewise.
	(extract_element): Likewise.
	(gfc_expanded_ac): Likewise.
	(resolve_array_list): Likewise.
	(gfc_resolve_character_array_constructor): Likewise.
	(copy_iterator): Renamed to ...
	(gfc_copy_iterator): ... this.
	(gfc_append_constructor): Removed.
	(gfc_insert_constructor): Removed unused function.
	(gfc_get_constructor): Removed.
	(gfc_free_constructor): Removed.
	(qgfc_copy_constructor): Removed.
	* gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
	Removed all references. Replaced constructor list by splay-tree.
	(struct gfc_constructor): Removed member 'next', moved 'offset' from
	the inner struct, added member 'base'.
	(gfc_append_constructor): Removed prototype.
	(gfc_insert_constructor): Removed prototype.
	(gfc_get_constructor): Removed prototype.
	(gfc_free_constructor): Removed prototype.
	(qgfc_copy_constructor): Removed prototype.
	(gfc_copy_iterator): New prototype.
	* trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.

2010-04-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43591
	* expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
	proc-pointers and type-bound procedures.
	(gfc_specification_expr): Check proc-pointers for pureness.

2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>

	PR bootstrap/43684
	* gfortranspec.c (lang_specific_driver): Do not expose vars 
	only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
	for such.

2010-04-09  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* decl.c (variable_decl, match_attr_spec): Fix setting the array
	spec.
	* array.c (match_subscript,gfc_match_array_ref): Add coarray support.
	* data.c (gfc_assign_data_value): Ditto.
	* expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
	(gfc_traverse_expr): Traverse also through codimension expressions.
	(gfc_is_coindexed, gfc_has_ultimate_allocatable,
	gfc_has_ultimate_pointer): New functions.
	* gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
	(gfc_array_ref): Add codimen.
	(gfc_array_ref): Add in_allocate.
	(gfc_is_coindexed, gfc_has_ultimate_allocatable,
	gfc_has_ultimate_pointer): Add prototypes.
	* interface.c (compare_parameter, compare_actual_formal,
	check_intents): Add coarray constraints.
	* match.c (gfc_match_iterator): Add coarray constraint.
	* match.h (gfc_match_array_ref): Update interface.
	* primary.c (gfc_match_varspec): Handle codimensions.
	* resolve.c (coarray_alloc, inquiry_argument): New static variables.
	(check_class_members): Return gfc_try instead for error recovery.
	(resolve_typebound_function,resolve_typebound_subroutine,
	check_members): Handle return value of check_class_members.
	(resolve_structure_cons, resolve_actual_arglist, resolve_function,
	check_dimension, compare_spec_to_ref, resolve_array_ref,
	resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
	resolve_allocate_expr, resolve_ordinary_assign): Add coarray
	support.
	* trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
	Skip over coarray refs.
	(gfc_array_allocate) Add support for references containing coindexes.
	* trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
	(gfc_map_intrinsic_function): Ignore codimensions.

2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>

	PR fortran/28039
	* io.c (check_format_string):  Added check for additional non 
	blank characters after the format string was successfully 
	parsed.
	* io.c (check_format): Changed the error messages for positive
	int required and period required to drop through the error logic
	and report with gfc_error instead of gfc_error_now.  Corrected
	format postion for hollerith strings.

2010-04-08  Tobias Burnus  <burnus@net-b.de>

	* module.c (use_iso_fortran_env_module): Fix standard check.

2010-04-07  Jakub Jelinek  <jakub@redhat.com>

	* parse.c (parse_derived, parse_enum): Avoid set but not used
	warning.

2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/40539
	* gfortran.texi: Add section about representation of
	LOGICAL variables.

2010-04-07  Simon Baldwin  <simonb@google.com>

	* cpp.c (cb_cpp_error): Add warning reason argument, set a value
	for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	* options.c (gfc_init_options): Do not set.

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

	PR fortran/18918
	* array.c (gfc_match_array_spec): Add error for -fcoarray=none.
	* match.c (gfc_match_critical, sync_statement): Ditto.
	* gfortran.h (gfc_fcoarray): New enum.
	(gfc_option_t): Use it.
	* lang.opt (fcoarray): Add new flag.
	* invoke.texi (fcoarray): Document it.
	* options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
	(gfc_handle_coarray_option): New function.

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

	PR fortran/18918
	* gfortran.h (gfc_array_spec): Add cotype.
	* array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
	and defer error diagnostic.
	* resolve.c (resolve_fl_derived): Add missing check.
	(resolve_symbol): Add cotype/type check.
	* parse.c (parse_derived): Fix setting of coarray_comp.

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

	PR fortran/18918
	* array.c (gfc_free_array_spec,gfc_resolve_array_spec,
	match_array_element_spec,gfc_copy_array_spec,
	gfc_compare_array_spec): Include corank.
	(match_array_element_spec,gfc_set_array_spec): Support codimension.
	* decl.c (build_sym,build_struct,variable_decl,
	match_attr_spec,attr_decl1,cray_pointer_decl,
	gfc_match_volatile): Add codimension.
	(gfc_match_codimension): New function.
	* dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
	* gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
	(gfc_add_codimension): New function prototype.
	* match.h (gfc_match_codimension): New function prototype.
	(gfc_match_array_spec): Update prototype
	* match.c (gfc_match_common): Update gfc_match_array_spec call.
	* module.c (MOD_VERSION): Bump.
	(mio_symbol_attribute): Support coarray attributes.
	(mio_array_spec): Add corank support.
	* parse.c (decode_specification_statement,decode_statement,
	parse_derived): Add coarray support.
	* resolve.c (resolve_formal_arglist, was_declared,
	is_non_constant_shape_array, resolve_fl_variable,
	resolve_fl_derived, resolve_symbol): Add coarray support.
	* symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
	gfc_build_class_symbol): Add coarray support.
	(gfc_add_codimension): New function.

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

	PR fortran/18918
	* iso-fortran-env.def: Add the integer parameters atomic_int_kind,
	atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
	stat_locked_other_image, stat_stopped_image and stat_unlocked of
	Fortran 2008.
	* intrinsic.texi (iso_fortran_env): Ditto.
	* libgfortran.h (libgfortran_stat_codes): New enum.
	* module.c (use_iso_fortran_env_module): Honour -std= when loading
	constants from the intrinsic module.

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

	PR fortran/39997
	* intrinsic.c (add_functions): Add num_images.
	* decl.c (gfc_match_end): Handle END CRITICAL.
	* intrinsic.h (gfc_simplify_num_images): Add prototype.
	* dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
	and SYNC.
	* gfortran.h (gfc_statement): Add enum items for those.
	(gfc_exec_op) Ditto.
	(gfc_isym_id): Add num_images.
	* trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
	(gfc_trans_sync,gfc_trans_critical): New functions.
	* trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
	gfc_trans_critical): Add/update prototypes.
	* trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
	and SYNC statements.
	* trans.h (gfor_fndecl_error_stop_string) Add variable.
	* resolve.c (resolve_sync): Add function.
	(gfc_resolve_blocks): Handle CRITICAL.
	(resolve_code): Handle CRITICAL, ERROR STOP,
	(resolve_branch): Add CRITICAL constraint check.
	and SYNC statements.
	* st.c (gfc_free_statement): Add new statements.
	* trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
	(gfc_build_builtin_function_decls): Initialize it.
	* match.c (gfc_match_if): Handle ERROR STOP and SYNC.
	(gfc_match_critical, gfc_match_error_stop, sync_statement,
	gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
	New functions.
	(match_exit_cycle): Handle CRITICAL constraint.
	(gfc_match_stopcode): Handle ERROR STOP.
	* match.h (gfc_match_critical, gfc_match_error_stop,
	gfc_match_sync_all, gfc_match_sync_images,
	gfc_match_sync_memory): Add prototype.
	* parse.c (decode_statement, gfc_ascii_statement,
	parse_executable): Handle new statements.
	(parse_critical_block): New function.
	* parse.h (gfc_compile_state): Add COMP_CRITICAL.
	* intrinsic.texi (num_images): Document new function.
	* simplify.c (gfc_simplify_num_images): Add function.

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

	PR fortran/43178
	* trans-array.c (gfc_conv_expr_descriptor): Update
	gfc_trans_scalar_assign call.
	(has_default_initializer): New function.
	(gfc_trans_deferred_array): Nullify less often.
	* trans-expr.c (gfc_conv_subref_array_arg,
	gfc_trans_subcomponent_assign): Update call to
	gfc_trans_scalar_assign.
	(gfc_trans_scalar_assign): Add parameter and pass it on.
	(gfc_trans_assignment_1): Optionally, do not dealloc before
	assignment.
	* trans-openmp.c (gfc_trans_omp_array_reduction): Update
	call to gfc_trans_scalar_assign.
	* trans-decl.c (gfc_get_symbol_decl): Do not always apply
	initializer to static variables.
	(gfc_init_default_dt): Add dealloc parameter and pass it on.
	* trans-stmt.c (forall_make_variable_temp,
	generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
	gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
	gfc_trans_allocate): Update gfc_trans_assignment call.
	* trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
	gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
	parameter to prototype.

2010-03-31  Paul Thomas  <pault@gcc.gnu.org>

	* ioparm.def : Update copyright.
	* lang.opt : ditto
	* trans-array.c : ditto
	* trans-array.h : ditto
	* expr.c: ditto
	* trans-types.c: ditto
	* dependency.c : ditto
	* gfortran.h : ditto
	* options.c : ditto
	* trans-io.c : ditto
	* trans-intrinsic.c : ditto
	* libgfortran.h : ditto
	* invoke.texi : ditto
	* intrinsic.texi : ditto
	* trans.c : ditto
	* trans.h : ditto
	* intrinsic.c : ditto
	* interface.c : ditto
	* iresolve.c : ditto
	* trans-stmt.c : ditto
	* trans-stmt.h : ditto
	* parse,c : ditto
	* match.h : ditto
	* error.c : ditto

2010-03-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43450
	* trans-decl.c (gfc_create_module_variable): With -fwhole-file
	do not assert the context of derived types.

2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43409
	* ioparm.def: Change inquire size variable to type pointer to
	GFC_IO_INT type.

2010-03-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43039
	* trans-expr.c (conv_parent_component_references): Ensure that
	'dt' has a backend_decl.

	PR fortran/43043
	* trans-expr.c (gfc_conv_structure): Ensure that the derived
	type has a backend_decl.

	PR fortran/43044
	* resolve.c (resolve_global_procedure): Check that the 'cl'
	structure is not NULL.

2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>

	* lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
	redundant tab.

2010-03-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43331
	* trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
	gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
	check.
	* decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
	pointees as having explizit size.
	* expr.c (gfc_check_assign): Remove now unreachable Cray pointee
	check.
	* trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
	(gfc_sym_type): Don't mark Cray pointees as restricted pointers.
	* resolve.c (resolve_symbol): Handle cp_was_assumed.
	* trans-decl.c (gfc_trans_deferred_vars): Ditto.
	(gfc_finish_var_decl): Don't mark Cray pointees as restricted
	pointers.

2010-03-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43362
	* resolve.c (resolve_structure_cons): Add missing PURE constraint.
	(resolve_ordinary_assign): Add check to avoid segfault.

2010-03-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43291
	PR fortran/43326
	* resolve.c (resolve_compcall): Add new boolean dummy argument
	'class_members'. Only resolve expression at end if false.
	Remove redundant, static variable 'class_object'.
	(check_class_members): Add extra argument to call of
	resolve_compcall.
	(resolve_typebound_function): Renamed resolve_class_compcall.
	Do all the detection of class references here. Correct calls to
	resolve_compcall for extra argument.
	(resolve_typebound_subroutine): resolve_class_typebound_call
	renamed. Otherwise same as resolve_typebound_function.
	(gfc_resolve_expr): Call resolve_typebound_function.
	(resolve_code): Call resolve_typebound_subroutine.

2010-03-10  Tobias Burnus  <burnus@net-b.de

	PR fortran/43303
	* symbol.c (get_iso_c_sym): Set sym->result.

2010-03-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43256
	* resolve.c (resolve_compcall): Don't set 'value.function.name' here
	for TBPs, otherwise they will not be resolved properly.
	(resolve_function): Use 'value.function.esym' instead of
	'value.function.name' to check if we're dealing with a TBP.
	(check_class_members): Set correct type of passed object for all TBPs,
	not only generic ones, except if the type is abstract.

2010-03-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43244
	* decl.c (gfc_match_final_decl): Make sure variable names starting with
	'final...' are not misinterpreted as FINAL statements.

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

	PR fortran/43243
	* trans-array.c (gfc_conv_array_parameter): Contiguous refs to
	allocatable ultimate components do not need temporaries, whilst
	ultimate pointer components do.

2010-03-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43169
	* resolve.c (resolve_code): Correctly set gfc_current_ns for
	EXEC_SELECT_TYPE.
	(gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
	(gfc_pure): Ditto.

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

	PR fortran/43180
	* trans-array.c (gfc_conv_array_parameter): A full array of
	derived type need not be restricted to a symbol without an
	array spec to use the call to gfc_conv_expr_descriptor.

	PR fortran/43173
	* trans-array.c (gfc_conv_array_parameter): Contiguous refs to
	allocatable arrays do not need temporaries.

2010-03-01  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43199
	* resolve.c (find_array_spec): Handle REF_COMPONENT with
	CLASS components.

2010-02-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43205
	* trans-expr.c (is_zero_initializer_p): Move up in the file.
	(gfc_conv_initializer): Handle zero initializer as special case.

2010-02-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43185
	* resolve.c (resolve_fl_variable_derived): Imply SAVE
	for module variables for Fortran 2008.

2010-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43166
	* trans-common.c (build_common_decl): Also update DECL_MODE,
	and DECL_SIZE when encountering a larger common block and call
	layout_decl.

2010-02-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43042
	* trans-expr.c (gfc_conv_initializer): Call directly
	gfc_conv_constant for C_NULL_(FUN)PTR.

2010-02-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43072
	* dependency.c (gfc_full_array_ref_p): Check for contiguous by
	checking the rest of the dimensions for elements.

2010-02-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/35259
	* gfortran.h (gfc_option_t): New flag -fprotect-parens.
	* lang.opt: Ditto.
	* option.c (gfc_init_options,gfc_handle_option): Ditto.
	* trans-expr.c (gfc_conv_expr_op): Use the flag.
	* invoke.texi: Document new -fno-protect-parens flag.

2010-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/36932
	PR fortran/36933
	PR fortran/43072
	PR fortran/43111
	* dependency.c (gfc_check_argument_var_dependency): Use enum
	value instead of arithmetic vaue for 'elemental'.
	(check_data_pointer_types): New function.
	(gfc_check_dependency): Call check_data_pointer_types.
	* trans-array.h : Change fourth argument of
	gfc_conv_array_parameter to boolean.
	* trans-array.c (gfc_conv_array_parameter): A contiguous array
	can be a dummy but it must not be assumed shape or deferred.
	Change fourth argument to boolean. Array constructor exprs will
	always be contiguous and do not need packing and unpacking.
	* trans-expr.c (gfc_conv_procedure_call): Clean up some white
	space and change fourth argument of gfc_conv_array_parameter
	to boolean.
	(gfc_trans_arrayfunc_assign): Change fourth argument of
	gfc_conv_array_parameter to boolean.
	* trans-io.c (gfc_convert_array_to_string): The same.
	* trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.

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

	PR fortran/42958
	* libgfortran.h: Add GFC_RTCHECK_MEM.
	* invoke.texi (-fcheck=): Document -fcheck=mem.
	* tranc.c (gfc_call_malloc): Remove negative-size run-time error
	and enable malloc-success check only with -fcheck=mem.
	* option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.

2010-02-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43040
	* gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
	* intrinsic.c (add_functions): Ditto.
	* iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
	* mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".

2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/32382
	* trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
	gfc_trans_do prototype.
	* trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
	a loop exit condition.  If exit condition is given, build the loop exit
	code, checking IO results of implied do loops in READ and WRITE.
	(gfc_trans_do): Likewise.
	* trans.c (trans_code): New static work function, previously
	gfc_trans_code. Passes exit condition to gfc_trans_do.
	(gfc_trans_code): Calls trans_code with NULL_TREE condition.
	(gfc_trans_code_cond): Calls trans_code with loop exit condition.
	* trans-io.c (build_dt): Build an exit condition to allow checking IO
	result status bits in the dtparm structure. Use this condition in call
	to gfc_trans_code_cond.

2010-02-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41113
	PR fortran/41117
	* trans-array.c (gfc_conv_array_parameter): Use
	gfc_full_array_ref_p to detect full and contiguous variable
	arrays. Full array components and contiguous arrays do not need
	internal_pack and internal_unpack.

2010-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/43030
	* resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.

	PR fortran/43029
	* decl.c (enumerator_decl): Don't call gfc_free_enum_history
	here.
	(gfc_match_enumerator_def): But here whenever enumerator_decl returns
	MATCH_ERROR.

2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
	    Tobias Burnus <burnus@net-b.de>

	PR fortran/40823
	* decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.

2010-02-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/43015
	* trans-decl.c (gfc_generate_function_code): Only check
	actual-vs.-dummy character bounds if not bind(C).

2010-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/42309
	* trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
	info->dimen after info has been freed.

2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42999
	* array.c (gfc_constant_ac): Do not prevent expansion of constructors
	with iterators.

2010-02-09  Jakub Jelinek  <jakub@redhat.com>

	* module.c (fix_mio_expr): Declare sym.

2010-02-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41869
	* module.c (fix_mio_expr): Fix for private generic procedures.

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

	PR fortran/39171
	* resolve.c (resolve_charlen): Change warning about negative CHARACTER
	length to be correct and issue only with -Wsurprising.
	* invoke.texi (Wsurprising): Mention this new warning that is
	turned on by -Wsurprising.

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

	PR fortran/41507
	* intrinsic.texi (MAXVAL): Remove wrong claim that array argument
	can be CHARACTER type.
	(MINVAL), (MAXLOC), (MINLOC): Ditto.

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

	PR fortran/42309
	* trans-expr.c (gfc_conv_subref_array_arg): Add new argument
	'formal_ptr'. If this is true, give returned descriptor unity
	lbounds, in all dimensions, and the appropriate offset.
	(gfc_conv_procedure_call); If formal is a pointer, set the last
	argument of gfc_conv_subref_array_arg to true.
	* trans.h : Add last argument for gfc_conv_subref_array_arg.
	* trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
	new arg of gfc_conv_subref_array_arg to false.
	* trans-stmt.c (forall_make_variable_temp): The same.

2010-02-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/42936
	* interface.c (compare_parameter): Disable rank-checking
	for NULL().

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

	PR fortran/42650
	* parse.c (decode_specification_statement): Use sym->result not sym.

2010-02-01  Tobias Burnus  <burnus@net-b.de>

	PR fortran/42922
	* decl.c (variable_decl): Allow default initializer in
	TYPE declarations in PURE functions.

2010-01-31  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42888
	* resolve.c (resolve_allocate_expr): Move default initialization code
	here from gfc_trans_allocate.
	* trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
	EXEC_INIT_ASSIGN.
	* trans-expr.c (gfc_trans_class_assign): Handle default initialization
	of CLASS variables via memcpy.
	* trans-stmt.c (gfc_trans_allocate): Move default initialization code
	to resolve_allocate_expr.

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

	PR fortran/38324
	* expr.c (gfc_get_full_arrayspec_from_expr): New function.
	* gfortran.h : Add prototype for above.
	* trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
	(gfc_trans_subcomponent_assign): Call new function to replace
	the code to deal with allocatable components.
	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
	gfc_get_full_arrayspec_from_expr to replace existing code.

2010-01-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/42858
	* array.c (gfc_array_dimen_size): Fix intrinsic procedure
	check.

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

	PR fortran/41044
	PR fortran/41167
	* expr.c (remove_subobject_ref): If the constructor is NULL use
	the expression as the source.
	(simplify_const_ref): Change the type of expression if
	there are component references.  Allow for substring to be at
	the end of an arbitrarily long chain of references.  If an
	element is found that is not in an EXPR_ARRAY, assume that this
	is scalar initialization of array. Call remove_subobject_ref in
	this case with NULL second argument.

2010-01-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/39304
	* array.c (gfc_array_dimen_size): Use correct specific
	function in the check.

2010-01-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42736
	* trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
	is required, turn any trailing array elements after a range
	into ranges so that offsets can be calculated.

2010-01-20  Joern Rennecke  <amylaar@spamcop.net>

	* module.c (mio_f2k_derived): Use enumerator as initializer of
	enum variable.

	PR bootstrap/42812
	* gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
	bitfield of width 2.

2010-01-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42804
	* resolve.c (extract_compcall_passed_object): Set locus for
	passed-object argument.
	(extract_ppc_passed_object): Set locus and correctly remove PPC
	reference.

2010-01-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42783
	* trans-decl.c (add_argument_checking): Do not use the backend
	decl directly to test for the presence of an optional dummy
	argument.  Use gfc_conv_expr_present, remembering to set the
	symbol referenced.

	PR fortran/42772
	* trans-decl.c (gfc_generate_function_code): Small white space
	changes. If 'recurcheckvar' is NULL do not try to reset it.

2010-01-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42545
	* resolve.c (resolve_fl_derived): Set the accessibility of the parent
	component for extended types.
	* symbol.c (gfc_find_component): Remove a wrongly-worded error message
	and take care of parent component accessibility.

2010-01-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42677
	* gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
	* interface.c (check_interface1): Move a warning message here from
	resolve_fl_procedure.
	(check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
	* module.c (read_module): Remove call to gfc_check_interfaces, since
	this comes too early here.
	* resolve.c (resolve_fl_procedure): Move warning message to
	check_interface1.

2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR fortran/42684
	* interface.c (check_interface1): Pass symbol name rather than NULL to
	gfc_compare_interfaces.	(gfc_compare_interfaces): Add assert to
	trap MULL.
	* resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
	than NULL to gfc_compare_interfaces.

2010-01-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41478
	* trans-array.c (duplicate_allocatable):  Static version of
	gfc_duplicate_allocatable with provision to handle scalar
	components. New boolean argument to switch off call to malloc
	if true.
	(gfc_duplicate_allocatable): New function to call above with
	new argument false.
	(gfc_copy_allocatable_data): New function to call above with
	new argument true.
	(structure_alloc_comps): Do not apply indirect reference to
	scalar pointers. Add new section to copy allocatable components
	of arrays. Extend copying of allocatable components to include
	scalars.
	(gfc_copy_only_alloc_comp): New function to copy allocatable
	component derived types, without allocating the base structure.
	* trans-array.h : Add primitive for gfc_copy_allocatable_data.
	Add primitive for gfc_copy_only_alloc_comp.
	* trans-expr.c (gfc_conv_procedure_call): After calls to
	transformational functions with results that are derived types
	with allocatable components, copy the components in the result.
	(gfc_trans_arrayfunc_assign): Deallocate allocatable components
	of lhs derived types before allocation.
	
2010-01-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42481
	* module.c (load_generic_interfaces): If a procedure that is
	use associated but not generic is given an interface that
	includes itself, then make it generic.

2010-01-11  Joseph Myers  <joseph@codesourcery.com>
	    Shujing Zhao  <pearly.zhao@oracle.com>

	PR translation/42469
	* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
	finit-logical=, finit-real=, fmax-array-constructor=): Use tab
	character between option name and help text.

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

	PR fortran/20923
	PR fortran/32489
	* trans-array.c (gfc_conv_array_initializer): Change call to
	gfc_error_now to call to gfc_fatal_error.
	* array.c (count_elements): Whitespace. (extract_element): Whitespace.
	(is_constant_element): Changed name from constant_element.
	(gfc_constant_ac): Only use expand_construuctor for expression
	types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
	call gfc_is_constant_expr.
	* expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
	message.
	* resolve.c (gfc_is_expandable_expr): New function that determiners if
	array expressions should have their constructors expanded.
	(gfc_resolve_expr): Use new function to determine whether or not to call
	gfc_expand_constructor.

2010-01-09  Tobias Burnus  <burnus@net-b.de>

	PR fortran/41298
	* trans-expr.c (gfc_trans_structure_assign): Handle
	c_null_(fun)ptr.
	* symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
	to the constructor for c_null_(fun)ptr.
	* resolve.c (resolve_structure_cons): Add special case
	for c_null_(fun)ptr.

2010-01-09  Jakub Jelinek  <jakub@redhat.com>

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

2010-01-08  Tobias Burnus  <burnus@net-b.de>

	PR/fortran 25829
	* symbol.c (check_conflict, gfc_copy_attr): Add
	ASYNCHRONOUS support.
	(gfc_add_asynchronous): New function.
	* decl.c (match_attr_spec): Add ASYNCHRONOUS support.
	(gfc_match_asynchronous): New function.
	* dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
	* gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
	(gfc_add_asynchronous): New Prototype.
	* module.c (ab_attribute, mio_symbol_attribute): Add
	ASYNCHRONOUS support.
	* resolve.c (was_declared): Ditto.
	* match.h (gfc_match_asynchronous): New prototype.
	* parse.c (decode_specification_statement,decode_statement):
	Add ASYNCHRONOUS support.

2010-01-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/42597
	* trans-decl.c (get_proc_pointer_decl): Fix call to
	gfc_conv_initializer for array-valued proc-pointer funcs.

2010-01-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/41872
	* trans-decl.c (gfc_trans_deferred_vars): Don't initialize
	allocatable scalars with SAVE attribute.

2010-01-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/42517
	* options.c (gfc_post_options): Set -frecursion
	when -fopenmp is used.

2010-01-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/41872
	* trans-expr.c (gfc_conv_procedure_call): Nullify
	return value for allocatable-scalar character functions.

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

	PR fortran/36161
	* error.c (error_printf, gfc_warning, gfc_notify_std,
	gfc_warning_now, gfc_error, gfc_error_now,
	gfc_fatal_error): Change argument name from nocmsgid to
	gmsgid to enable (x)gettext's % checking.

2010-01-04  Tobias Burnus  <burnus@net-b.de>
	
	* trans-decl.c (gfc_trans_deferred_vars): Fix spelling.

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

	PR fortran/41872
	* trans-expr.c (gfc_conv_procedure_call): Add indirect ref
	for functions returning allocatable scalars.
	* trans-stmt.c (gfc_trans_allocate): Emmit error when
	reallocating an allocatable scalar.
	* trans.c (gfc_allocate_with_status): Fix pseudocode syntax
	in comment.
	* trans-decl.c (gfc_trans_deferred_vars): Nullify local
	allocatable scalars.
	(gfc_generate_function_code): Nullify result variable for
	allocatable scalars.
	
	PR fortran/40849
	* module.c (gfc_use_module): Fix warning string to allow
	for translation.

	PR fortran/42517
	* invoke.texi (-fcheck=recursion): Mention that the checking
	is also disabled for -frecursive.
	* trans-decl.c (gfc_generate_function_code): Disable
	-fcheck=recursion when -frecursive is used.

	* intrinsic.texi (iso_c_binding): Improve wording.


Copyright (C) 2010 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.
