2011-12-31  Thomas König  <tkoenig@gcc.gnu.org>

	PR fortran/51502
	* expr.c (gfc_check_vardef_context):  When determining
	implicit pure status, also check for variable definition
	context.  Walk up namespaces until a procedure is
	found to reset the implict pure attribute.
	* resolve.c (gfc_implicit_pure):  Walk up namespaces
	until a procedure is found.

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

	* dependency.c (gfc_dep_compare_functions):  Document
	new behavior for REALs and complex.  Add comment to cases
	where only INTEGERs are handled.  Compare REAL and COMPLEX
	constants, returning 0 and -2 only.  Add assert to make
	sure that only integer constants are compared.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51605
	* parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
	local symbol.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51605
	* match.c (gfc_match_select_type): Handle
	scalar polymophic coarrays.
	(select_type_set_tmp, ): Ditto; avoid segfault if !class_ok.
	* primary.c (gfc_match_rvalue): Avoid segfault if !class_ok.
	* resolve.c (resolve_select_type): Ditto.
	(resolve_assoc_var): Fix setting the TARGET attribute for
	polymorphic selectors which are pointers.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

	* check.c (coarray_check): Add class ref if needed.
	* resolve.c (resolve_fl_var_and_proc,
	resolve_fl_derived0, resolve_symbol): Fix checking
	for BT_CLASS.

2011-12-15  Paul Thomas  <pault@gcc.gnu.org>

	* trans-expr.c (gfc_walk_function_expr): Detect elemental
	procedure components as well as elemental procedures.
	* trans-array.c (gfc_conv_procedure_call): Ditto.
	* trans-decl.c (gfc_trans_deferred_vars): Correct erroneous
	break for class pointers to continue.

2011-12-15  Toon Moene  <toon@moene.org>

	PR fortran/51310
	* resolve.c (build_default_init_expr): Allow non-allocatable,
	non-compile-time-constant-shape arrays to have a default
	initializer.
	* invoke.texi: Delete the restriction on automatic arrays not
	being initialized by -finit-<type>=<constant>.

2011-12-15  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51550
	PR fortran/47545
	PR fortran/49050
	PR fortran/51075	
	* resolve.c (resolve_fl_derived0): Print not-implemented error
	for deferred-length character components.

2011-12-15  Tobias Burnus  <burnus@net-b.de>

	* primary.c (gfc_match_varspec): Match array spec for
	polymorphic coarrays.
	(gfc_match_rvalue): If a symbol of unknown flavor has a
	codimension, mark it as a variable.
	* simplify.c (gfc_simplify_image_index): Directly call
	simplify_cobound.
	* trans-intrinsic.c (trans_this_image): Fix handling of
	corank = 1 arrays.

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

	PR debug/51517
	* trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
	(gfc_trans_deferred_vars): Instead add its runtime initialization
	here.

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

	PR fortran/50923
	* trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
	if the front end has printed a warning.
	(gfc_generate_function_code): Fix unset-result warning.

2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
	Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/41539
	PR fortran/43214
	PR fortran/43969
	PR fortran/44568
	PR fortran/46356
	PR fortran/46990
	PR fortran/49074
	* interface.c (symbol_rank): Return the rank of the _data
	component of class objects.
	(compare_parameter): Also compare the derived type of the class
	_data component for type mismatch.  Similarly, return 1 if the
	formal and _data ranks match.
	(compare_actual_formal): Do not compare storage sizes for class
	expressions. It is an error if an actual class array, passed to
	a formal class array is not full.
	* trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
	gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
	gfc_vtable_extends_get, gfc_vtable_def_init_get,
	gfc_vtable_copy_get): New functions for class API.
	(gfc_conv_derived_to_class): For an array reference in an
	elemental procedure call retain the ss to provide the
	scalarized array reference. Moved in file.
	(gfc_conv_class_to_class): New function.
	(gfc_conv_subref_array_arg): Use the type of the
	class _data component as a basetype.
	(gfc_conv_procedure_call): Ensure that class array expressions
	have both the _data reference and an array reference. Use 
	gfc_conv_class_to_class to handle class arrays for elemental
	functions in scalarized loops, class array elements and full
	class arrays. Use a call to gfc_conv_subref_array_arg in order
	that the copy-in/copy-out for passing class arrays to derived
	type arrays occurs correctly.
	(gfc_conv_expr): If it is missing, add the _data component
	between a class object or component and an array reference.
	(gfc_trans_class_array_init_assign): New function.
	(gfc_trans_class_init_assign): Call it for array expressions.
	* trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
	class scalars since their size will depend on the dynamic type.
	(build_class_array_ref): New function.
	(gfc_conv_scalarized_array_ref): Call build_class_array_ref.
	(gfc_array_init_size): Add extra argument, expr3, that represents
	the SOURCE argument. If present,use this for the element size.
	(gfc_array_allocate): Also add argument expr3 and use it when
	calling gfc_array_init_size.
	(structure_alloc_comps): Enable class arrays.
	* class.c (gfc_add_component_ref): Carry over the derived type
	of the _data component.
	(gfc_add_class_array_ref): New function.
	(class_array_ref_detected): New static function.
	(gfc_is_class_array_ref): New function that calls previous.
	(gfc_is_class_scalar_expr): New function.
	(gfc_build_class_symbol): Throw not implemented error for
	assumed size class arrays.  Remove error that prevents
	CLASS arrays.
	(gfc_build_class_symbol): Prevent pointer/allocatable conflict.
	Also unset codimension.
	(gfc_find_derived_vtab): Make 'copy' elemental and set the
	intent of the arguments accordingly.: 
	* trans-array.h: Update prototype for gfc_array_allocate.
	* array.c (gfc_array_dimen_size): Return failure if class expr.
	(gfc_array_size): Likewise.
	* gfortran.h: New prototypes for gfc_add_class_array_ref,
	gfc_is_class_array_ref and gfc_is_class_scalar_expr.
	* trans-stmt.c (trans_associate_var): Exclude class targets
	from test. Move the allocation of the _vptr to an earlier time
	for class objects.
	(trans_associate_var): Assign the descriptor directly for class
	arrays.
	(gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
	Convert array element references into sections. Do not invoke
	gfc_conv_procedure_call, use gfc_trans_call instead.
	* expr.c (gfc_get_corank): Fix for BT_CLASS.
	(gfc_is_simply_contiguous): Exclude class from test.
	* trans.c (gfc_build_array_ref): Include class array refs.
	* trans.h: Include prototypes for class API functions that are
	new in trans-expr. Define GFC_DECL_CLASS(node).
	* resolve.c (check_typebound_baseobject ): Remove error for
	non-scalar base object.
	(resolve_allocate_expr): Ensure that class _data component is
	present. If array, call gfc_expr_to_intialize.
	(resolve_select): Remove scalar error for SELECT statement as a
	temporary measure.
	(resolve_assoc_var): Update 'target' (aka 'selector') as
	needed. Ensure that the target expression has the right rank.
	(resolve_select_type): Ensure that target expressions have a
	valid locus.
	(resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
	* trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
	appropriate.
	(gfc_trans_deferred_vars): Get class arrays right.
	* match.c(select_type_set_tmp): Add array spec to temporary.
	(gfc_match_select_type): Allow class arrays.
	* check.c (array_check): Ensure that class arrays have refs.
	(dim_corank_check, dim_rank_check): Retrun success if class.
	* primary.c (gfc_match_varspec): Fix for class arrays and
	co-arrays. Make sure that class _data is present.
	(gfc_match_rvalue): Handle class arrays.
	*trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
	reference.
	(gfc_conv_allocated): Add _data component to class expressions.
	(gfc_add_intrinsic_ss_code): ditto.
	* simplify.c (simplify_cobound): Fix for BT_CLASS.
	(simplify_bound): Return NULL for class arrays.
	(simplify_cobound): Obtain correct array_spec. Use cotype as
	appropriate. Use arrayspec for bounds.

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

	PR fortran/50690
	* frontend-passes.c (in_omp_workshare):  New variable.
	(cfe_expr_0):  Don't eliminiate common function if it would put
	the variable immediately into a WORKSHARE construct.
	(optimize_namespace):  Set in_omp_workshare.
	(gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
	constructs.

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

	* trans-decl.c (add_argument_checking): Fix syntax.

2011-12-10  Tobias Burnus  <burnus@net-b.de>
	    Kai Tietz  <ktietz@redhat.com>

	* trans-decl.c (add_argument_checking): Check ts.deferred earlier.
	* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/50815
	* trans-decl.c (add_argument_checking): Skip bound checking
	for deferred-length strings.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51378
	* symbol.c (gfc_find_component): Fix access check of parent
	components.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51407
	* io/transfer.c (require_numeric_type): New function.
	(formatted_transfer_scalar_read, formatted_transfer_scalar_write):
	Use it, allow BOZ edit descriptors with F2008.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51448
	* fortran/trans-array.c (get_std_lbound): Fix handling of
	conversion functions.

2011-12-08  Toon Moene  <toon@moene.org>

	PR fortran/51310
	* invoke.texi: Itemize the cases for which
	-finit-<type>=<constant> doesn't work.

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

	PR fortran/51435
	* expr.c (gfc_has_default_initializer): Fix handling of
	DT with initialized pointer components.

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

	PR fortran/51338
	* dependency.c (are_identical_variables):  Handle case where
	end fields of substring references are NULL.

2011-12-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/51383
	* resolve.c (find_array_spec): Use ref->u.c.component
	directly without starting from ts.u.derived.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48887
	* match.c (select_type_set_tmp): Don't set allocatable/pointer
	attribute.
	* class.c (gfc_build_class_symbol): Handle
	attr.select_type_temporary.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/50684
	* check.c (variable_check): Fix intent(in) check.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

	* check.c (gfc_check_move_alloc): Allow nonpolymorphic
	FROM with polymorphic TO.
	* trans-intrinsic.c (conv_intrinsic_move_alloc): Handle
	nonpolymorphic FROM with polymorphic TO.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* module.c (dt_lower_string): Make static.
	(dt_upper_string): Likewise.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/25708
	* module.c (parse_string): Read string into resizable array
	instead of parsing twice and seeking.
	(peek_atom): New implementation avoiding seeks.
	(require_atom): Save and set column and line explicitly for error
	handling.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* misc.c (gfc_open_file): Don't call stat.

2011-11-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/40958
	* module.c (prev_module_line):  New variable.
	(prev_module_column):  New variable.
	(prev_character):  New variable.
	(module_char):  Update the new variables.
	(module_unget_char):  New function.
	(parse_string):  Use module_unget_char.
	(parse_integer):  Likewise.
	(parse_name):  Likewise.

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

	PR fortran/51306
	PR fortran/48700
	* check.c (gfc_check_move_alloc): Make sure that from/to
	are both polymorphic or neither.
	* trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
	generate inline code.

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

	PR fortran/51308
	* symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
	conflicts for ISO_C_BINDING variables.
	(gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
	as SAVE.

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

	* trans-array.c (set_loop_bounds): Remove dead conditions.

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

	PR fortran/51250
	PR fortran/43829
	* trans-array.c (gfc_trans_create_temp_array): Get dimension from
	the right gfc_ss struct.

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

	PR fortran/50408
	* trans-decl.c (gfc_get_module_backend_decl): Also copy
	ts.u.derived from the gsym if the ts.type is BT_CLASS.
	(gfc_get_extern_function_decl): Copy also the backend_decl
	for the symbol's ts.u.{derived,cl} from the gsym.
	* trans-types.c (gfc_copy_dt_decls_ifequal): Directly
	return if "from" and "to" are the same.

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

	PR fortran/51302
	* trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.

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

	PR fortran/51218
	* resolve.c (pure_subroutine): If called subroutine is
	impure, unset implicit_pure.
	(resolve_function): Move impure check to simplify code.

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

	PR fortran/51207
	* class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
	and hence as TREE_READONLY; add subroutine attribute to
	__copy_ procedure.

	PR fortran/50640
	* trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
	* trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as
	GFC_DECL_PUSH_TOPLEVEL.
	(gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
	(build_function_decl): Push __copy_ procedure to the toplevel.

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

	PR fortran/39427
	PR fortran/37829
	* decl.c (match_data_constant, match_data_constant, variable_decl,
	gfc_match_decl_type_spec, access_attr_decl,
	check_extended_derived_type, gfc_match_derived_decl,
	gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
	with DT constructors.
	* gfortran.h (gfc_find_dt_in_generic,
	gfc_convert_to_structure_constructor): New function prototypes.
	* interface.c (check_interface0, check_interface1,
	gfc_search_interface): Ignore DT constructors in generic list.
	* match.h (gfc_match_structure_constructor): Update prototype.
	* match.c (match_derived_type_spec): Ensure that one uses the DT
	not the generic function.
	* module.c (MOD_VERSION): Bump.
	(dt_lower_string, dt_upper_string): New functions.
	(find_use_name_n, find_use_operator, compare_true_names,
	find_true_name, add_true_name, fix_mio_expr, load_needed,
	read_module, write_dt_extensions, write_symbol): Changes to deal with
	different symtree vs. sym names.
	(create_derived_type): Create also generic procedure.
	* parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic
	function as the same.
	* primary.c (gfc_convert_to_structure_constructor): New function.
	(gfc_match_structure_constructor): Restructured; calls
	gfc_convert_to_structure_constructor.
	(build_actual_constructor, gfc_match_rvalue): Update for DT generic
	functions.
	* resolve.c (resolve_formal_arglist, resolve_structure_cons,
	is_illegal_recursion, resolve_generic_f, resolve_variable,
	resolve_fl_variable_derived, resolve_fl_derived0,
	resolve_symbol): Handle DT and DT generic constructors.
	* symbol.c (gfc_use_derived, gfc_undo_symbols,
	gen_special_c_interop_ptr, gen_cptr_param,
	generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
	derived-types, which are hidden in the generic type.
	(gfc_find_dt_in_generic): New function
	* trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER
	expr by actual value.
	* trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts):
	Ensure that we use the DT and not the generic function.
	* trans-types.c (gfc_get_derived_type): Ensure that we use the DT
	and not the generic procedure.

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

	PR fortran/51073
	* trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays.

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

	* symbol.c (clear_sym_mark, traverse_ns): Remove functions.
	(count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
	(gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.

2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/50016
	* gfortran.texi (Data consistency and durability): New section.

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

	PR fortran/50540
	* resolve.c (resolve_forall_iterators): Transform internal errors
	to normal errors.

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

	PR fortran/50960
	* class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
	* expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
	their value.
	* resolve.c (resolve_values): Use-associated symbols do not need to
	be resolved again.
	(resolve_fl_parameter): Make sure the symbol has a value.

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

	PR fortran/38718
	* intrinsic.c (add_functions): Allow dreal simplification.
	* intrinsic.h (gfc_simplify_dreal): New prototype.
	* simplify.c (gfc_simplify_dreal): New function.

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

	PR fortran/21881
	* trans-types.c (gfc_get_dtype): Issue a fatal error instead of
	an internal error.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/50404
	* io.c (gfc_resolve_close): CLOSE requires a UNIT.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/50409
	* expr.c (gfc_simplify_expr): Substrings can't have negative
	length.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/50334
	* invoke.texi (-finit-*): Document interaction with
	-Wuninitialized.

2011-11-07  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR libfortran/49188
	PR libfortran/49336
	* invoke.texi: Fix documentation of fsign-zero option. Remove
	contractions.
	* intrinsic.texi: Fix ATAN2 documentation for signed zeros.
	Remove contractions.
	* gfortran.texi: Remove contractions.

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

	PR fortran/50919
	* class.c (add_proc_comp): Don't add non-overridable procedures to the
	vtable.
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Don't generate a dynamic _vptr call for non-overridable procedures.

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
	and time are part of the C standard library.

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

	* gfortran.h (gfc_extend_expr): Modified prototype.
	* interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'.
	Remove argument 'real_error'.
	* resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'.

2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	Merged from cxx-mem-model.

	* types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT,
	BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
	BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
	BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
	BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
	BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT,
	BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/43829
	* trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
	case in the assertion.
	* trans-intrinsic (enter_nested_loop): New function.
	(gfc_conv_intrinsic_arith): Support non-scalar cases.
	(nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
	(walk_inline_intrinsic_function): Handle sum and product.
	(gfc_inline_intrinsic_function_p): Ditto.
	* trans.h (gfc_get_loopinfo): New macro.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
	expression variable.  Use it.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
	pointer.  Use it.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
	cleanup.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* frontend-passes.c (cfe_register_funcs): Return early in the case
	of an inline intrinsic function.
	(optimize_binop_array_assignment): Skip optimization in the case of
	an inline intrinsic function.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* array.c (match_subscript): Skip whitespaces before setting locus.
	* matchexp.c (match_level_1): Ditto.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
	temporary rank to the loop rank. Mark ss chains for multiple loop
	if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
	and start another.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
	temporary rank to the loop rank. Mark ss chains for multiple loop
	if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
	and start another.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
	offset twice in generated code.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
	arguments to elemental calls.
	* trans-stmt.c (replace_ss): New function.
	(gfc_conv_elemental_dependencies): Remove temporary loop handling.
	Create a new ss for the temporary and replace the original one with it.
	Remove fake array references. Recalculate all offsets.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
	* trans-array.c (gfc_free_ss): Remove forward declaration.
	Make non-static.
	(set_delta, gfc_set_delta): Remove forward declaration.
	Make non-static and rename the former to the later. Update uses.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (gfc_inline_intrinsic_function_p): Move prototype...
	* gfortran.h (gfc_inline_intrinsic_function_p): ... here.
	* dependency.c (gfc_check_argument_var_dependency): Check dependencies
	of inline intrinsics' arguments.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): New pointers to outer
	dimension's ss and loop. Use them.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (outermost_loop): New function.
	(gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
	gfc_add_loop_ss_code): Put generated code out of the outermost loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (constant_array_constructor_loop_size):
	Handle multiple loops.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (get_rank, get_loop_upper_bound_for_array):
	New functions.
	(gfc_trans_array_constructor): Handle multiple loops.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_loopinfo): New field parent.
	* trans-array.c (gfc_cleanup_loop): Free nested loops.
	(gfc_add_ss_to_loop): Set nested_loop's parent loop.
	(gfc_trans_array_constructor): Update assertion.
	(gfc_conv_loop_setup): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
	Call recursively gfc_add_loop_ss_code for all the nested loops.
	(gfc_conv_ss_startstride): Only get the descriptor for the outermost
	ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
	(set_loop_bounds): Call recursively for all the nested loops.
	(set_delta): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_loopinfo): New fields nested and next.
	* trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
	ss has non-null nested_ss field.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_create_temp_array): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): 
	Rename the former to the latter and loop over the parents.
	(innermost_ss): New function.
	(get_array_ref_dim_for_loop_dim): New function.
	(gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
	(set_loop_bounds): Use get_array_dim_for_loop_dim).

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss): New field nested_ss.
	* trans-expr.c (gfc_advance_se_ss_chain): Update assertion.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (set_vector_loop_bounds): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_array_constructor): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the
	parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss): New field parent.
	* trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a
	parent exists.
	* trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the
	end of the chain.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.h (gfc_trans_create_temp_array): Remove loop argument.
	* trans-array.c (gfc_trans_create_temp_array): Ditto.  Get loop from ss.
	Update reference to loop.  Remove loop argument.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to
	gfc_trans_create_temp_array.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
	Set loop before calling gfc_trans_create_temp_array.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_create_temp_array): New variable total_dim.
	Set total_dim to loop's rank. Replace usages of loop's rank.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_array_constructor, trans_array_constructor):
	Rename the former to the later.  Get loop from ss.
	Remove loop argument.
	(gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss.
	Remove loop argument.
	(gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss): New field loop.
	* trans-array.c (set_ss_loop): New function.
	(gfc_add_ss_to_loop): Call set_ss_loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss_info): New field refcount.
	* trans-array.c (free_ss_info): Decrement refcount. Return early if
	still non-zero.
	(gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment
	refcount.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_create_temp_array): Move invariant condition
	out of the containing loop. 

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array):
	Move specloop arrays clearing from the former to the latter.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (set_loop_bounds): Separate the beginning of
	gfc_conv_loop_setup into a function of its own.
	(set_delta): Separate the end of gfc_conv_loop_setup into a function
	of its own.
	(gfc_conv_loop_setup): Call set_loop_bounds and set delta.
	(set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a
	pointer to the specloop field from the loop struct.

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

	PR fortran/50933
	* interface.c (gfc_compare_derived_types): Fix check for BIND(C).

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

	PR fortran/50960
	* trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move field
	gfc_ss::where into gfc_ss_info.
	* trans-array.c (gfc_add_loop_ss_code):
	Update reference chains.
	* trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move field
	gfc_ss::useflags into gfc_ss_info.
	* trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup,
	gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary):
	Update reference chains.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move field
	gfc_ss::data::info into gfc_ss_info::data and remove empty union
	gfc_ss::data.
	* trans-array.c (gfc_free_ss, gfc_trans_create_temp_array,
	gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
	gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
	gfc_conv_ss_descriptor, gfc_trans_array_bound_check,
	gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
	add_array_offset, gfc_trans_preloop_setup,
	gfc_trans_scalarized_boundary, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_could_be_alias,
	gfc_conv_loop_setup, gfc_conv_expr_descriptor,
	gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref):
	Update reference chains and factor them where possible.
	* trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
	gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference
	chains.
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
	* trans-io.c (transfer_array_component): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies,
	gfc_trans_pointer_assign_need_temp): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
	gfc_ss::data::temp into gfc_ss_info::data.
	* trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
	chains.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
	gfc_ss::data::scalar into newly created union gfc_ss_info::data,
	and rename subfield expr to value.
	* trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
	gfc_conv_expr_descriptor): Update reference chains.
	* trans-const.c (gfc_conv_constant): Ditto.
	* trans-expr.c (gfc_conv_expr): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move field
	string_length from the former struct to the latter.
	* trans-array.c
	(gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code,
	gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref,
	gfc_conv_resolve_dependencies, gfc_conv_loop_setup,
	gfc_conv_expr_descriptor): Update references to string_length and
	factor common reference chains where possible.
	* trans-const.c (gfc_conv_constant): Ditto.
	* trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
	gfc_conv_expr): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from
	the former struct to the latter.
	* trans-array.c
	(gfc_get_array_ss, gfc_get_scalar_ss,
	gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
	gfc_add_loop_ss_code, gfc_conv_ss_descriptor,
	gfc_trans_array_bound_check, gfc_conv_array_index_offset,
	gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride,
	gfc_could_be_alias, gfc_conv_resolve_dependencies,
	gfc_conv_loop_setup, gfc_conv_expr_descriptor,
	gfc_alloc_allocatable_for_assignment): Update references to expr and
	factor common reference chains where possible.
	* trans-const.c (gfc_conv_constant): Ditto.
	* trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call,
	gfc_conv_array_constructor_expr, gfc_conv_expr,
	gfc_conv_expr_reference): Ditto.
	* trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound,
	gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall,
	gfc_add_intrinsic_ss_code): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss_info): New struct.
	(gfc_get_ss_info): New macro.
	(struct gfc_ss): Move type field to struct gfc_ss_info.
	Add an info field of type gfc_ss_info.
	* trans-array.c (free_ss_info): New function.
	(gfc_free_ss): Call free_ss_info.
	(gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss):
	Allocate gfc_ss_info field.
	(gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss,
	gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
	gfc_conv_array_index_offset, gfc_trans_preloop_setup,
	gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_conv_resolve_dependencies,
	gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor,
	gfc_walk_elemental_function_args): Update references to type.
	* trans-const.c (gfc_conv_constant): Factor common reference chains
	and update reference to type.
	* trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1):
	Update reference to type.
	(gfc_conv_array_constructor_expr, gfc_conv_expr,
	gfc_conv_expr_reference): Ditto. Factor common reference chains.
	* trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references
	to type
	* trans-stmt.c (gfc_trans_where_assign): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss, struct gfc_array_info): Move shape field
	from the former struct to the latter.
	* trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup):
	Update field references.
	* trans-expr.c (gfc_trans_subarray_assign): Update field references
	and factor common reference chains.
	* trans-io.c (transfer_array_component): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_array_info): Move dim and dimen fields...
	(struct gfc_ss): ... here.  Remove gfc_ss::data::temp::dimen field.
	* trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array
	initialization.
	(gfc_get_temp_ss): Initialize dim and dimen.
	(gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss,
	gfc_set_loop_bounds_from_array_spec, get_array_ref_dim,
	gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
	gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref,
	gfc_trans_preloop_setup, gfc_conv_ss_startstride,
	gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims,
	gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment,
	gfc_walk_array_ref): Update field references.
	* trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
	Ditto.
	* trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (struct gfc_ss_info, struct gfc_array_info):
	Rename the former to the latter.
	* trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage,
	get_array_ref_dim, gfc_trans_create_temp_array,
	gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds,
	gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
	add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims,
	gfc_conv_expr_descriptor): Update all uses.
	* trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
	Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer,
	walk_inline_intrinsic_transpose): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies,
	gfc_trans_pointer_assign_need_temp): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (dim_ok, transposed_dims): Rename the former to the
	latter.  Change argument type.  Invert return value.
	(gfc_conv_expr_descriptor): Update calls.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (get_array_ref_dim): Change argument type and name.
	Obtain previous argument from the new argument in the body.
	(gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
	Rename the former to the latter.  Change type and name of argument.
	Get previous argument from the new one.
	(gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.h (gfc_trans_create_temp_array): Replace info argument
	with ss argument.
	* trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
	gfc_trans_create_temp_array.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_array_bound_check): Use ss argument
	to get name.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_array_bound_check,
	trans_array_bound_check): Rename the former to the latter.
	Replace descriptor argument with ss argument.  Get descriptor from ss.
	(gfc_conv_array_index_offset, conv_array_index_offset): Rename the
	former to the latter.  Update call to trans_array_bound_check.
	Replace info argument with ss argument.  Get info from ss.
	(gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset.
	(add_array_offset): Ditto

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_constant_array_constructor,
	trans_constant_array_constructor): Rename the former to the latter.
	Don't set the rank of the temporary for the loop.  Remove then unused
	loop argument.
	(gfc_trans_array_constructor): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
	marker, not after it.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_ss_startstride): Access array bounds along
	array dimensions instead of loop dimensions.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Assertify one condition.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_walk_array_ref): Skip coarray dimensions.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (get_array_ref_dim): Remove redundant condition.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Move common code...
	(add_array_offset): ...into that new function.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead
	of array's dimention. Check that it is indeed the same.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
	Special case outermost loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Factor loop index
	initialization.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Move code earlier.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_trans_preloop_setup): Move array reference
	initialisation earlier. Factor subsequent array references.

2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.

2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50573
	* check.c (gfc_check_dshift): Update argument checking for BOZ.
	Update checking SHIFT against BITSIZE of I or J.
	* intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.

2011-10-28  Steven G. Kargl  <kargl@gcc.gnu.org>

	* check.c (gfc_check_atan_2): Typo in comment.
	(gfc_check_nearest): If 's' is constant, check that it is not 0.
	* simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits,
	gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc,
	gfc_simplify_nearest): Remove dead code.

2011-10-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	* simplify.c (simplify_transformation_to_array): Fix memory leak.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50821
	* check.c (gfc_check_ishftc): Check args are constant before 
	extracting the integer.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50514
	* check.c (less_than_bitsize1): Check |shift| <= bit_size(i).
	(gfc_check_ishftc):  Check |shift| <= bit_size(i) and check
	that size is positive.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50524
	* resolve.c (resolve_ref): Check return value of resolve_substring().

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	* io.c (match_dt_format): Match a user-defined operator or a kind
	type prefixed string.

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

	PR fortran/47023
	* check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
	* intrinsinc.texi (SIZEOF): Document it.
	(STORAGE_SIZE): Fix special characters. Fix line breaks.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans.c (gfc_build_array_ref): If type is not an array, check that
	there is nothing to do, and do nothing.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-types.c (gfc_build_array_type): Don't force lower bound to one
	in the deferred case.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
	Don't set already set array ref.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	* array.c (gfc_find_array_ref): Remove coarray-specific handling.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* check.c (dim_corank_check): Use gfc_get_corank to get corank.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.

	PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
	the scalarization chain initialization. 

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Allow subreferences after a
	coarray object reference.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
	if they are coarrays.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.h (gfc_walk_array_ref): New prototype.
	* trans-array.c (gfc_walk_array_ref): New function, containing
	all but the beginning of gfc_walk_variable_expr's code.
	(gfc_walk_variable_expr): Use gfc_walk_array_ref.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
	ndim for the descriptor's rank.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50420
	* trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
	from zero, and add then the relevant offset (either ndim or loop.dimen)
	depending on context.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
	earlier.

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

	PR fortran/47023
	* decl.c (verify_c_interop_param): Renamed to
	'gfc_verify_c_interop_param'. Add error message for polymorphic
	arguments.
	(verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
	polymorphic variables.
	(verify_bind_c_sym): Renamed 'verify_c_interop'.
	* gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
	* check.c (gfc_check_sizeof): Ditto.
	* resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
	* symbol.c (verify_bind_c_derived_type): Ditto.

2011-10-15  Tom Tromey  <tromey@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* cpp.c (print_line, cb_define): Adjust to avoid using internals
	of struct line_map.  Use the public API instead.

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

	PR fortran/47023
	PR fortran/50752
	* primary.c (match_kind_param): Avoid segfault.

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

	* frontend-passes.c (current_ns):  Make static.
	(create_var):  Note parent of newly created namespace.
	(optimize_namespace):  Don't wak sibling namespaces
	if they are EXEC_BLOCK because this is handled...
	(gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.

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

	PR fortran/47023
	* primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
	(get_kind): Pass on 'is_iso_c' flag.
	(match_integer_constant,match_real_constant,match_logical_constant):
	Set 'ts.is_c_interop'.

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

	PR fortran/50547
	* resolve.c (resolve_formal_arglist): Remove unneeded error message.
	Some reshuffling.

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

	* gfortran.texi (Fortran 2008 status, TS 29113 status,
	Further Interoperability of Fortran with C): Update implementation
	status, change references from TR 29113 to TS 29113.
	* intrinsic.texi (RANK): Change TR 29113 to TS 29113.
	* invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
	* lang.opt (std=): Ditto.
	* options.c (gfc_handle_option, set_default_std_flags): Ditto and
	change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
	* libgfortran.h: Ditto.
	* intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
	* decl.c (verify_c_interop_param): Ditto.

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

	PR fortran/50570
	* expr.c (gfc_check_vardef_context): Don't throw an error on
	non-pointer assignments involving an intent(in) pointer dummy.

2011-10-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/50718
	* trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
	for dummy arguments with VALUE attribute.

2011-10-11  Tobias Burnus  <burnus@net-b.de>
	    Janus Weil  <janus@gcc.gnu.org>

	* invoke.texi (-fwhole-file): Update wording since -fwhole-file
	is now enabled by default.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* trans-expr.c (gfc_conv_power_op): Delete old interface with two
	parallel arrays to hold standard builtin declarations, and replace
	it with a function based interface that can support creating
	builtins on the fly in the future.  Change all uses, and poison
	the old names.  Make sure 0 is not a legitimate builtin index.
	(fill_with_spaces): Ditto.
	(gfc_trans_string_copy): Ditto.
	(gfc_trans_zero_assign): Ditto.
	(gfc_build_memcpy_call): Ditto.
	(alloc_scalar_allocatable_for_assignment): Ditto.
	* trans-array.c (gfc_trans_array_constructor_value): Ditto.
	(duplicate_allocatable): Ditto.
	(gfc_alloc_allocatable_for_assignment): Ditto.
	* trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
	(gfc_omp_clause_assign_op): Ditto.
	(gfc_trans_omp_atomic): Ditto.
	(gfc_trans_omp_do): Ditto.
	(gfc_trans_omp_task): Ditto.
	* trans-stmt.c (gfc_trans_stop): Ditto.
	(gfc_trans_sync): Ditto.
	(gfc_trans_allocate): Ditto.
	(gfc_trans_deallocate): Ditto.
	* trans.c (gfc_call_malloc): Ditto.
	(gfc_allocate_using_malloc): Ditto.
	(gfc_call_free): Ditto.
	(gfc_deallocate_with_status): Ditto.
	(gfc_deallocate_scalar_with_status): Ditto.
	* f95-lang.c (gfc_define_builtin): Ditto.
	(gfc_init_builtin_functions): Ditto.
	* trans-decl.c (create_main_function): Ditto.
	* trans-intrinsic.c (builtin_decl_for_precision): Ditto.

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

	PR fortran/50564
	* frontend-passes (forall_level):  New variable.
	(cfe_register_funcs):  Don't register functions if we
	are within a forall loop.
	(optimize_namespace):  Set forall_level to 0 before entry.
	(gfc_code_walker):  Increase/decrease forall_level.

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

	PR fortran/50273
	* trans-common.c (translate_common): Fix -Walign-commons check.

2011-10-09  Mikael Morin  <mikael.morin@sfr.fr>

	* interface.c (check_dummy_characteristics): Count dimensions starting
	from one in diagnostic.

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

	* Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
	dependency on iso-c-binding.def and iso-fortran-env.def.
	* module.c (import_iso_c_binding_module): Add error when
	explicitly importing a nonstandard symbol; extend standard-
	depending loading.
	* iso-c-binding.def: Add c_float128 and c_float128_complex
	integer parameters (for -std=gnu).
	* intrinsic.texi (ISO_C_Binding): Document them.
	* symbol.c (generate_isocbinding_symbol): Change macros
	to ignore GFC_STD_* data.
	* trans-types.c (gfc_init_c_interop_kinds): Ditto; make
	nonstatic and renamed from "init_c_interop_kinds".
	(gfc_init_kinds): Don't call it
	* trans-types.h (gfc_init_c_interop_kinds): Add prototype.
	* f95-lang.c (gfc_init_decl_processing): Call it.

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

	PR fortran/50659
	* expr.c (replace_symbol): Only do replacement if the symbol is a dummy.

2011-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/47844
	* trans-array.c (gfc_conv_array_index_offset): Use descriptor
	stride for pointer function results.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c	(gfc_conv_expr_descriptor): Remove trailing whitespace.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c	(gfc_conv_ss_startstride): Merge two switch cases.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
	Remove conditions on coarray.
	(gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
	(gfc_conv_expr_descriptor): Ditto. Add assertions before the call.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_section_startstride): Remove coarray_last
	argument. Remove condition on coarray_last.
	(gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
	(gfc_conv_expr_descriptor): Ditto.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
	handling.  Don't reset array ref's corank and codimensions' types
	in the full array ref case.  Update loop upper limit.
	Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans.h (gfc_ss_info): Remove codimen field.
	* trans-array.c (gfc_get_array_ss): Don't set codimen field.
	(gfc_trans_create_temp_array): Don't set descriptor's cobounds.
	(gfc_trans_constant_array_constructor): Update loop upper limit.
	(gfc_conv_ss_startstride): Don't set codimen field.
	Don't get descriptor's cobounds.
	(gfc_walk_variable_expr): Update dimension index.
	* trans-intrinsic.c (trans_this_image, trans_image_index,
	conv_intrinsic_cobound): Don't set codimen field

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans.h (gfc_loopinfo): Remove codimen field.
	* trans-array.c (gfc_set_vector_loop_bounds,
	gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
	limit.
	(gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
	codimension.
	(gfc_start_scalarized_body): Update loop lower limit.
	(gfc_conv_ss_startstride): Don't set loop's codimen field.
	(gfc_conv_loop_setup): Remove unnecessary condition.
	(gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans.h (gfc_ss): Remove data.temp.codimen field.
	* trans-array.c (gfc_conv_resolve_dependencies,
	gfc_conv_expr_descriptor): Don't set temp's codimen field.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
	associated dimen_type) in the full array ref case.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-intrinsic.c (walk_coarray): New function.
	(convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
	(trans-this_image, trans_image_index, conv_intrinsic_cobound):
	Use walk_coarray.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
	cobounds evaluation.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_section_startstride): Move code to
	evaluate_bound.  Use evaluate_bound.
	(evaluate_bound): New function.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_section_startstride): Update assertion to
	also accept coarrays.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_section_startstride): Factor common
	array ref references.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
	loop.codimen as argument to gfc_get_array_type_bounds.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (struct gfc_se): New flag want_coarray.
	* trans-intrinsic.c (trans_this_image, trans_image_index,
	conv_intrinsic_cobound): Set want_coarray.
	* trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
	earlier and without relying on the scalarizer.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* expr.c (gfc_get_corank): Return 0 if input expression is not a
	coarray.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
	descriptor setup code.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* resolve.c (compare_spec_to_ref): Move coarray ref initialization
	code...
	(resolve_array_ref): ... here.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

	* check.c (is_coarray): Remove.
	(coarray_check): Use gfc_is_coarray.

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

	PR fortran/50625
	* class.c (gfc_build_class_symbol): Fix whitespace.
	* module.c (mio_symbol): Set 'class_ok' attribute.
	* trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
	been built for class symbols.

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

	PR fortran/35831
	* interface.c (check_dummy_characteristics): Check the array shape.

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

	PR fortran/50585
	* interface.c (get_expr_storage_size): Check if 'length' component is
	associated.

2011-09-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50547
	* resolve.c (resolve_formal_arglist): Fix pureness check for dummy
	functions.

	PR fortran/50553
	* symbol.c (check_conflict): Forbid TARGET attribute for statement
	functions.

2011-09-27  Jakub Jelinek  <jakub@redhat.com>

	* trans-types.c (gfc_type_for_size): Return wider type
	if no suitable narrower type has been found.
	(gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
	returned type doesn't have expected TYPE_MODE.

2011-09-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50515
	* resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.

	PR fortran/50517
	* interface.c (gfc_compare_interfaces): Bugfix in check for result type.

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

	PR fortran/41733
	* expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
	procedures.
	* interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
	for PURE and ELEMENTAL attributes.
	(compare_actual_formal): Remove pureness check here.

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

	* check.c (gfc_check_c_sizeof): Remove redundant word.

2011-09-20  Simon Baldwin  <simonb@google.com>

	* module.c (gfc_dump_module): Omit timestamp from output.

2011-09-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50403
	* symbol.c (gfc_use_derived): Fix coding style.

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

	PR fortran/50401
	* resolve.c (resolve_transfer): Check if component 'ref' is defined.

	PR fortran/50403
	* symbol.c (gfc_use_derived): Check if argument 'sym' is defined.

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

	PR fortran/34547
	PR fortran/50375
	* check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
	* resolve.c (resolve_transfer): Reject NULL without MOLD.
	* interface.c (gfc_procedure_use): Reject NULL without MOLD
	if no explicit interface is known.
	(gfc_search_interface): Reject NULL without MOLD if it would
	lead to ambiguity.

2011-09-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50379
	* symbol.c (check_conflict): Check conflict between GENERIC and RESULT
	attributes.

2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50327
	* frontend-passes.c (dummy_expr_callback):  New function.
	(convert_do_while):  New function.
	(optimize_namespace):  Call code walker to convert do while loops.

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

	PR fortran/35831
	PR fortran/47978
	* interface.c (check_dummy_characteristics): New function to check the
	characteristics of dummy arguments.
	(gfc_compare_interfaces,gfc_check_typebound_override): Call it here.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_trans_constant_array_constructor): Remove
	superfluous initialisation of DIM field.
	(gfc_trans_array_constructor): Assert that DIMEN field is properly set.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_scalar_ss): New prototype.
	* trans-array.c (gfc_get_scalar_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_op_expr,
	gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	(gfc_trans_assignment_1): Ditto.
	* trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
	gfc_trans_where_3): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_temp_ss): New prototype.
	* trans-array.c (gfc_get_temp_ss): New function.
	(gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_subref_array_arg): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_array_ss): New prototype.
	* trans-array.c (gfc_get_array_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_function_expr,
	gfc_walk_array_constructor): Re-use gfc_get_array_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	* trans-intrinsic.c (gfc_walk_intrinsic_bound,
	gfc_walk_intrinsic_libfunc): Ditto.
	* trans-io.c (transfer_array_component): Ditto.

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

	PR fortran/44646
	* decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
	* dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
	* gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
	* match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
	lock_unlock_statement, sync_statement, gfc_match_allocate,
	gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
	(gfc_match_do): Match DO CONCURRENT.
	(match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
	match_forall_iterator, match_forall_header, match_simple_forall,
	gfc_match_forall): Move up in the file.
	* parse.c (check_do_closure, parse_do_block): Handle do concurrent.
	* parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
	* resolve.c (do_concurrent_flag): New global variable.
	(resolve_function, pure_subroutine, resolve_branch,
	gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
	diagnostic.
	* st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
	* trans-stmt.c (gfc_trans_do_concurrent): New function.
	(gfc_trans_forall_1): Handle do concurrent.
	* trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
	* trans.c (trans_code): Call it.
	* frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.

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

	PR fortran/48095
	* primary.c (gfc_match_structure_constructor): Handle parsing of
	procedure pointers components in structure constructors.
	* resolve.c (resolve_structure_cons): Check interface of procedure
	pointer components. Changed wording of some error messages.

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

	PR fortran/50227
	* trans-types.c (gfc_sym_type): Check for proc_name.

2011-08-30  Tobias Burnus  <burnus@net-b.de>

	PR fortran/45044
	* trans-common.c (build_common_decl): Warn if named common
	block's size is not everywhere the same.

2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/45170
	* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

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

	PR fortran/50225
	* trans-decl.c (gfc_generate_function_code): Nullify polymorphic
	allocatable function results.

2011-08-29  Tobias Burnus  <burnus@net-b.de>

	* trans-decl.c (generate_coarray_sym_init): Use
	GFC_CAF_COARRAY_STATIC for static coarrays.

2011-08-28  Dodji Seketeli  <dodji@redhat.com>

	* scanner.c (load_file): Don't abuse LC_RENAME reason while
	(indirectly) calling linemap_add.

2011-08-26  Jakub Jelinek  <jakub@redhat.com>

	* trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
	if threadprivate.
	* symbol.c (check_conflict): Allow threadprivate attribute with
	FL_PROCEDURE if proc_pointer.

2011-08-25  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50050
	* expr.c (gfc_free_shape): Do nothing if shape is NULL.
	(free_expr0): Remove redundant NULL shape check.
	* resolve.c (check_host_association): Ditto.
	* trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
	non-NULL.
	* trans-io.c (transfer_array_component): Ditto.

2011-08-25  Tobias Burnus  <burnus@net-b.de>

	* trans-array.c (gfc_conv_descriptor_token): Add assert.
	* trans-decl.c (gfc_build_qualified_array,
	create_function_arglist): Handle assumed-shape arrays.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.
	* trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
	add "caf_token" to assumed-shape descriptors, new akind argument.
	(gfc_get_array_type_bounds): Pass akind.
	* trans.h (lang_decl): New elements caf_offset and token.
	(GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.

2011-08-25  Tobias Burnus  <burnus@net-b.de>

	* trans-array.c (structure_alloc_comps): Fix for allocatable
	scalar coarray components.
	* trans-expr.c (gfc_conv_component_ref): Ditto.
	* trans-type.c (gfc_get_derived_type): Ditto.

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

	PR fortran/50163
	* expr.c (check_init_expr): Return when an error occured.

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.

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

	PR fortran/31600
	* symbol.c (gfc_add_type): Better diagnostic if redefining
	use-associated symbol.
	* module.c (gfc_use_module): Use module name as locus.

2011-08-22  Gabriel Charette  <gchare@google.com>

	* cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
	defined in cpp_define_builtins.

2011-08-22  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/50050
	* gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
	* expr.c (gfc_clear_shape, gfc_free_shape): New functions.
	(free_expr0): Re-use gfc_free_shape.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	* trans-io.c (transfer_array_component): Ditto.
	* resolve.c (check_host_association): Ditto.
	(gfc_expr_to_initialize): Don't force the rank value and free the shape
	after updating the expression. Recalculate shape and rank.
	(resolve_where_shape): Re-use gfc_clear_shape.
	* array.c (gfc_array_ref_shape): Ditto.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47659
	* expr.c (gfc_check_assign): Check for type conversions when the
	right-hand side is a constant REAL/COMPLEX contstant the left-hand
	side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
	for REAL does not change the value of the constant.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50130
	* resolve.c (resolve_array_ref):  Don't calculate upper bound
	if the stride is zero.

2011-08-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49638
	* dependency.c (gfc_dep_compare_expr): Add new result value "-3".
	(gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
	result value "-3".
	* frontend-passes.c (optimize_comparison): Ditto.
	* interface.c (gfc_check_typebound_override): Ditto.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/50129
	* parse.c (parse_where): Undo changes after emitting an error. 

2011-08-19  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/49792
	* trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
	bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
	lhs needs reallocation.
	* trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
	code is NULL, emit a barrier if workshare emitted no code at all
	and NOWAIT clause isn't present.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/50071
	* gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
	* parse.c (check_statement_label): Accept ST_END_BLOCK and
	ST_END_ASSOCIATE as valid branch target.
	(accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
	Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
	* resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
	EXEC_END_NESTED_BLOCK.
	(resolve_branch): Ditto.
	(resolve_code): Add EXEC_END_NESTED_BLOCK case.
	* st.c (gfc_free_statement): Ditto.
	* trans.c (trans_code): Ditto.

2011-08-18  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/50071
	* symbol.c (gfc_get_st_label): Use the derived type namespace when
	we are parsing a derived type definition.

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

	PR fortran/18918
	* parse.c (parse_derived): Add lock_type
	checks, improve coarray_comp handling.
	* resolve.c (resolve_allocate_expr,
	resolve_lock_unlock, resolve_symbol): Fix lock_type
	constraint checks.

2011-08-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/31461
	* trans-decl.c (generate_local_decl): Warn about
	unused explicitly imported module variables/parameters.

2011-08-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50070
	* resolve.c (resolve_fl_variable): Reject non-constant character lengths
	in COMMON variables.

2011-08-16  Tobias Burnus  <burnus@net-b.de>
	    Dominique Dhumieres  <dominiq@lps.ens.fr>

	PR fortran/50094
	* resolve.c (resolve_symbol): Fix stupid typo.

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

	* resolve.c (resolve_symbol): Fix coarray result-var check.

2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	* module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.

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

	PR fortran/50073
	* decl.c (check_function_name): New function, separated off from
	'variable_decl' and slightly extended.
	(variable_decl,attr_decl1): Call it.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).

2011-08-07  Janus Weil  <janus@gcc.gnu.org>
	    Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/49638
	* dependency.c (are_identical_variables): For dummy arguments only
	check for equal names, not equal symbols.
	* interface.c (gfc_check_typebound_override): Add checking for rank
	and character length.

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

	PR fortran/49638
	* dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
	two prototypes.
	* dependency.c (gfc_are_identical_variables,are_identical_variables):
	Renamed the former to the latter and made static.
	(gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
	commutativity of multiplication.
	(gfc_is_same_range,is_same_range): Renamed the former to the latter,
	made static and removed argument 'def'.
	(check_section_vs_section): Renamed 'gfc_is_same_range'.
	* gfortran.h (gfc_check_typebound_override): New prototype.
	* interface.c (gfc_check_typebound_override): Moved here from ...
	* resolve.c (check_typebound_override): ... here (and renamed).
	(resolve_typebound_procedure): Renamed 'check_typebound_override'.

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

	PR fortran/50004
	* target-memory.c (gfc_target_expr-size): Don't clobber typespec
	for derived types.
	* simplify.c (gfc_simplify_transfer): Don't calculate source_size
	twice.

2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37211
	* gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
	* target-memory.h (gfc_target_interpret_expr):  Add boolean
	argument wether to convert wide characters.
	* target-memory.c (gfc_target_expr_size):  Also return length
	of characters for non-constant expressions if these can be
	determined from the cl.
	(interpret_array):  Add argument for gfc_target_interpret_expr.
	(gfc_interpret_derived):  Likewise.
	(gfc_target_interpret_expr):  Likewise.
	* check.c:  Include target-memory.h.
	(gfc_calculate_transfer_sizes):  New function.
	(gfc_check_transfer):  When -Wsurprising is in force, calculate
	sizes and warn if result is larger than size (check moved from
	gfc_simplify_transfer).
	* simplify.c (gfc_simplify_transfer):  Use
	gfc_calculate_transfer_sizes.  Remove warning.

2011-08-04  Richard Guenther  <rguenther@suse.de>

	PR fortran/49957
	* trans-array.c (add_to_offset): New function.
	(gfc_conv_array_ref): Build the array index expression in optimally
	associated order.
	(gfc_walk_variable_expr): Adjust for the backward walk.

2011-08-02  Daniel Kraft  <d@domob.eu>

	PR fortran/49885
	* trans-array.c (gfc_trans_auto_array_allocation): Change
	gfc_start_block to gfc_init_block to avoid spurious extra-scope.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

	* trans-array.c (gfc_array_allocate): Pass token to
	  gfc_allocate_allocatable for -fcoarray=lib.
	* trans-stmt.c (gfc_trans_allocate): Update
	gfc_allocate_allocatable call.
	* trans.h (gfc_allocate_allocatable): Update prototype.
	(gfc_allocate_using_lib): Remove.
	* trans.c (gfc_allocate_using_lib): Make static, handle token.
	(gfc_allocate_allocatable): Ditto.

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/46752
	* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
	* openmp.c (gfc_free_omp_clauses): Free also final_expr.
	(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
	(gfc_match_omp_clauses): Handle parsing final and mergeable
	clauses.
	(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
	(gfc_match_omp_taskyield): New function.
	(resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
	Cray pointers in clauses other than REDUCTION.
	(gfc_match_omp_atomic): Match optional
	read/write/update/capture keywords after !$omp atomic.
	(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
	* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
	print final and mergeable clauses.
	(show_code_node): Handle EXEC_OMP_TASKYIELD.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
	mergeable clauses.
	(gfc_trans_omp_taskyield): New function.
	(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
	(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
	(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
	(gfc_omp_predetermined_sharing): Adjust comment.
	* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
	ST_OMP_END_ATOMIC.
	(gfc_omp_clauses): Add final_expr and mergeable fields.
	(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
	(gfc_omp_atomic_op): New enum typedef.
	(struct gfc_code): Add ext.omp_atomic.
	* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
	* frontend-passes.c (gfc_code_walker): Also walk final_expr.
	* resolve.c (gfc_resolve_blocks, resolve_code): Handle
	EXEC_OMP_TASKYIELD.
	* st.c (gfc_free_statement): Likewise.
	* match.h (gfc_match_omp_taskyield): New prototype.
	* parse.c (decode_omp_directive): Handle taskyield directive.
	Handle !$omp end atomic.
	(case_executable): Add ST_OMP_TASKYIELD case.
	(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
	(parse_omp_atomic): Return gfc_statement instead of void.
	For !$omp atomic capture parse two assignments instead of
	just one and require !$omp end atomic afterwards, for
	other !$omp atomic forms just allow !$omp end atomic at the
	end.
	(parse_omp_structured_block, parse_executable): Adjust
	parse_omp_atomic callers.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.c (OMP_LIB): Updated openmp_version's
	value to 201107.
	* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
	* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
	remove deleted omp_integer_kind and omp_logical_kind constants.

2011-07-31  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49112
	* resolve.c (resolve_structure_cons): Don't do the full dt resolution,
	only call 'resolve_fl_derived0'.
	(resolve_typebound_procedures): Resolve typebound procedures of
	parent type.
	(resolve_fl_derived0): New function, which does a part of the work
	for 'resolve_fl_derived'.
	(resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
	things.

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

	PR fortran/48876
	* expr.c (gfc_simplify_expr):  If end of a string is less
	than zero, set it to zero.

2011-07-28  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/31067
	* frontend-passes.c (optimize_minmaxloc): New function.
	(optimize_expr): Call it.

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

	PR fortran/45586
	* trans-types.c (gfc_get_derived_type): Ensure that pointer
	component types are marked as nonrestricted.

2011-07-27  Daniel Carrera  <dcarrera@gmail.com>

	PR fortran/49755
	* trans.c (gfc_allocate_using_malloc): Change function signature.
	Return nothing. New parameter "pointer". Eliminate temorary variables. 
	(gfc_allocate_using_lib): Ditto.
	(gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
	and gfc_allocate_using_malloc. Do not free and then reallocate a
	variable that is already allocated.
	(gfc_likely): New function. Basedon gfc_unlikely.
	* trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
	Instructions to modify the array descriptor are stored in this block
	while other instructions continue to be stored in "pblock".
	(gfc_array_allocate): Update call to gfc_array_init_size. Move the
	descriptor_block so that the array descriptor is only updated if
	the array was allocated successfully.
	Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
	* trans.h (gfc_allocate_allocatable): Change function signature.
	Function now returns void.
	(gfc_allocate_using_lib): Ditto, and new function parameter.
	(gfc_allocate_using_malloc): Ditto.
	* trans-openmp.c (gfc_omp_clause_default_ctor,
	gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
	to gfc_allocate_allocatable with gfc_allocate_using_malloc.
	* trans-stmt.c (gfc_trans_allocate): Update function calls for
	gfc_allocate_allocatable and gfc_allocate_using_malloc.

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

	* trans-array.c (CAF_TOKEN_FIELD): New macro constant.
	(gfc_conv_descriptor_token): New function.
	* trans-array.h (gfc_conv_descriptor_token): New prototype.
	* trans-types.c (gfc_get_array_descriptor_base): For coarrays
	with -fcoarray=lib, append "void *token" to the array descriptor.
	(gfc_array_descriptor_base_caf): New static variable.
	* trans-expr.c (gfc_conv_procedure_call): Handle token and offset
	when passing a descriptor coarray to a nondescriptor dummy. 

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

	* resolve.c (resolve_symbol): Fix coarray var decl check.

2011-07-21  Daniel Carrera  <dcarrera@gmail.com>

	* trans.c (gfc_allocate_with_status): Split into two functions
	gfc_allocate_using_malloc and gfc_allocate_usig_lib.
	(gfc_allocate_using_malloc): The status parameter is now the
	actual status rather than a pointer. Code cleanup.
	(gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
	errlen. Pass these to the coarray lib.
	* trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
	gfc_allocate_allocatable.
	(gfc_omp_clause_copy_ctor): Ditto.
	(gfc_trans_omp_array_reduction): Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
	gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
	fuctions. If using coarray lib, pass errmsg and errlen to the allocate
	functions. Move error checking outside the if (!gfc_array_allocate)
	block so that it also affects trees produced by gfc_array_allocate.
	* trans-array.c (gfc_array_allocate): Add new parameters errmsg
	and errlen. Replace parameter pstat by status. Code cleanup. Update
	calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
	* trans-array.h (gfc_array_allocate): Update signature of
	gfc_array_allocate.

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

	* gfortran.texi: Remove a duplicate word.

2011-07-21  Tobias Burnus  <burnus@net-b.de>

	* check.c (gfc_check_present): Allow coarrays.
	* trans-array.c (gfc_conv_array_ref): Avoid casting
	when a pointer is wanted.
	* trans-decl.c (create_function_arglist): For -fcoarray=lib,
	handle hidden token and offset arguments for nondescriptor
	coarrays.
	* trans-expr.c (get_tree_for_caf_expr): New function.
	(gfc_conv_procedure_call): For -fcoarray=lib pass the
	token and offset for nondescriptor coarray dummies.
	* trans.h (lang_type): Add caf_offset tree.
	(GFC_TYPE_ARRAY_CAF_OFFSET): New macro.

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

	* expr.c (gfc_is_coarray): New function.
	* gfortran.h (gfc_is_coarray): New prototype.
	* interface.c (compare_parameter): Use it.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
	(gfc_trans_string_copy): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
	* trans-types.c (gfc_get_array_descr_info): Likewise.
	* trans.c (gfc_build_array_ref): Likewise.

2011-07-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49708
	* resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.

2011-07-18  Tobias Burnus  <burnus@net-b.de>

	* trans-decl.c (gfc_build_qualified_array): Make coarray's
	token TYPE_QUAL_RESTRICT.

2011-07-18  Tobias Burnus  <burnus@net-b.de>

	* resolve.c (resolve_transfer): Mention defined I/O
	in the diagnostic for alloc_comp/pointer_comp.

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

	PR fortran/34657
	* module.c (check_for_ambiguous): Check whether the name is matches
	the current program unit.

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

	PR fortran/49624
	* expr.c (gfc_check_pointer_assign): Fix checking for invalid
	pointer bounds.

2011-07-16  Tobias Burnus  <burnus@net-b.de>
	
	* expr.c (gfc_ref_this_image): New function.
	(gfc_is_coindexed): Use it.
	* gfortran.h (gfc_ref_this_image): New prototype.
	* resolve.c (resolve_deallocate_expr,
	resolve_allocate_expr): Support alloc scalar coarrays.
	* trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
	gfc_conv_descriptor_cosize, gfc_array_allocate,
	gfc_trans_deferred_array): Ditto.
	* trans-expr.c (gfc_conv_variable) Ditto.:
	* trans-stmt.c (gfc_trans_deallocate): Ditto.
	* trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
	gfc_get_array_descr_info): Ditto.
	* trans-decl.c (gfc_get_symbol_decl): Ditto.

2011-07-11  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/49698
	* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
	inner_size to gfc_index_one_node instead of integer_one_node.

2011-07-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/49690
	* intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.

2011-07-09  Uros Bizjak  <ubizjak@gmail.com>

	PR fortran/48926
	* expr.c (gfc_get_corank): Change return value to int.
	* gfortran.h (gfc_get_corank): Update function prototype.

2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/49648
	* resolve.c (resolve_symbol): Force resolution of function result's
	array specification.

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

	* trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
	with NULL arguments for (new) stat=/errmsg= arguments.

2011-07-06  Daniel Carrera  <dcarrera@gmail.com>

	* trans-array.c (gfc_array_allocate): Rename allocatable_array to
	allocatable. Rename function gfc_allocate_array_with_status to
	gfc_allocate_allocatable_with_status. Update function call for
	gfc_allocate_with_status.
	* trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
	gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
	* trans-stmt.c (gfc_trans_allocate): Update function call for
	gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
	to gfc_allocate_allocatable_with_status.
	* trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
	so it uses the library for memory allocation when -fcoarray=lib.
	(gfc_allocate_allocatable_with_status): Renamed from
	gfc_allocate_array_with_status.
	(gfc_allocate_allocatable_with_status): Update function call for
	gfc_allocate_with_status.
	* trans.h (gfc_coarray_type): New enum.
	(gfc_allocate_with_status): Update prototype.
	(gfc_allocate_allocatable_with_status): Renamed from
	gfc_allocate_array_with_status.
	* trans-decl.c (generate_coarray_sym_init): Use the new constant
	GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* f95-lang.c (gfc_init_decl_processing):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

2011-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/49623
	* gfortranspec.c (lang_specific_driver): Ignore options with
	CL_ERR_MISSING_ARG errors.

2011-07-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49562
	* expr.c (gfc_check_vardef_context): Handle type-bound procedures.

2011-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/49540
	* gfortran.h (gfc_constructor): Add repeat field.
	* trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
	* array.c (current_expand): Add repeat field.
	(expand_constructor): Copy repeat.
	* constructor.c (node_free, node_copy, gfc_constructor_get,
	gfc_constructor_lookup): Handle repeat field.
	(gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
	* data.h (gfc_assign_data_value): Add mpz_t * argument.
	(gfc_assign_data_value_range): Removed.
	* constructor.h (gfc_constructor_advance): Removed.
	(gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
	* data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
	also handle overwriting a range with a single entry.
	(gfc_assign_data_value_range): Removed.
	* resolve.c (check_data_variable): Adjust gfc_assign_data_value
	call.  Use gfc_assign_data_value instead of
	gfc_assign_data_value_expr.

2011-06-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49466
	* trans-array.c (structure_alloc_comps): Make sure sub-components
	and extended types are correctly deallocated.

2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

	* trans-openmp.c: Add sync_ or SYNC__ to builtin names.
	* trans-stmt.c: Add sync_ or SYNC__ to builtin names.
	* trans-decl.c: Add sync_ or SYNC__ to builtin names.

2011-06-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49112
	* class.c (gfc_find_derived_vtab): Make vtab and default initialization
	symbols SAVE_IMPLICIT.

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

	PR fortran/18918
	* gfortran.h (gfc_check_vardef_context): Update prototype.
	(iso_fortran_env_symbol): Handle derived types.
	(symbol_attribute): Add lock_comp.
	* expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
	* interface.c (compare_parameter, gfc_procedure_use): Handle
	LOCK_TYPE.
	(compare_actual_formal): Update
	gfc_check_vardef_context call.
	* check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
	* intrinsic.c (check_arglist): Ditto.
	* io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
	* iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
	* intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
	* module.c (mio_symbol_attribute): Handle lock_comp.
	(create_derived_type): New function.
	(use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
	* parse.c (parse_derived): Add constraint check for LOCK_TYPE.
	* resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
	checks for LOCK_TYPE.
	(gfc_resolve_iterator, resolve_deallocate_expr,
	resolve_allocate_expr, resolve_code, resolve_transfer): Update
	gfc_check_vardef_context call.
	* trans-stmt.h (gfc_trans_lock_unlock): New prototype.
	* trans-stmt.c (gfc_trans_lock_unlock): New function.
	* trans.c (trans_code): Handle LOCK and UNLOCK.

2011-06-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49400
	* decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
	BLOCK constructs.

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

	PR fortran/48699
	* check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
	make sure the vtab is present.

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

	PR fortran/49074
	* interface.c (gfc_extend_assign): Propagate the locus from the
	assignment to the type-bound procedure call.

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

	PR fortran/49417
	* module.c (mio_component): Make sure the 'class_ok' attribute is set
	for use-associated CLASS components.
	* parse.c (parse_derived): Check for 'class_ok' attribute.
	* resolve.c (resolve_fl_derived): Ditto.

2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (remove_trim):  New function.
	(optimize_assignment):  Use it.
	(optimize_comparison):  Likewise.  Return correct status
	for previous change.

2011-06-12  Tobias Burnus

	PR fortran/49324
	* trans-expr.c (gfc_trans_assignment_1): Tell
	gfc_trans_scalar_assign to also deep-copy RHS nonvariables
	with allocatable components.
	* trans-array.c (gfc_conv_expr_descriptor): Ditto.

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

	* frontend-passes.c (optimize_assignment): Follow chains
	of concatenation operators to the end for removing trailing
	TRIMS for assignments.

2011-06-10  Daniel Carrera  <dcarrera@gmail.com>

	* trans-decl.c (gfc_build_builtin_function_decls):
	Updated declaration of caf_sync_all and caf_sync_images.
	* trans-stmt.c (gfc_trans_sync): Function
	can now handle a "stat" variable that has an integer type
	different from integer_type_node.

2011-06-09  Richard Guenther  <rguenther@suse.de>

	* trans.c (gfc_allocate_array_with_status): Mark error path
	as unlikely.

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

	PR fortran/18918
	* gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
	(gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
	(gfc_code): Add expr4.
	* match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
	* match.c (gfc_match_lock, gfc_match_unlock,
	lock_unlock_statement): New functions.
	(sync_statement): Bug fix, avoiding double freeing.
	(gfc_match_if): Handle LOCK/UNLOCK statement.
	* parse.c (decode_statement, next_statement,
	gfc_ascii_statement): Ditto.
	* st.c (gfc_free_statement): Handle LOCK and UNLOCK.
	* resolve.c (resolve_lock_unlock): New function.
	(resolve_code): Call it.
	* dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* f95-lang.c (gfc_init_decl_processing): Do not set
	size_type_node or call set_sizetype.

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

	PR fortran/49255
	* trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
	for F2008.

2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
	Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.c (show_symbol):  Don't dump namespace
	for ENTRY to avoid infinite recursion.

2011-06-02  Asher Langton  <langton2@llnl.gov>

	PR fortran/49268
	* trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
	pointees as AS_EXPLICIT.

2011-06-02  Asher Langton  <langton2@llnl.gov>

	PR fortran/37039
	* decl.c (variable_decl): Merge current_as before copying to cp_as.

2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/49265
	* decl.c (gfc_match_modproc):  Allow for a double colon in a module
	procedure statement.
	* parse.c ( decode_statement): Deal with whitespace around :: in
	gfc_match_modproc.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* intrinsic.c (klass): Add CLASS_ATOMIC.
	(add_subroutines): Add atomic_ref/atomic_define.
	* intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
	* intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
	gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
	and GFC_ISYM_ATOMIC_REF.
	(gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
	* iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
	functions.
	* check.c (gfc_check_atomic, gfc_check_atomic_def,
	gfc_check_atomic_ref): New functions.
	* iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
	ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
	* trans-intrinsic.c (conv_intrinsic_atomic_def,
	conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
	functions.
	(conv_intrinsic_move_alloc) Renamed from
	gfc_conv_intrinsic_move_alloc - and made static.
	* trans.h (gfc_conv_intrinsic_move_alloc): Remove.
	(gfc_conv_intrinsic_subroutine) Add prototype.
	* trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
	* trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
	global vars.
	(gfc_init_kinds): Set them.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* trans-array.c (gfc_trans_dummy_array_bias): Handle
	cobounds of assumed-shape arrays.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* resolve.c (resolve_fl_variable): Handle static coarrays
	with non-constant cobounds.

2011-05-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47601
	* module.c (mio_component_ref): Handle components of extended types.
	* symbol.c (gfc_find_component): Return is sym is NULL.

2011-05-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* interface.c (compare_parameter): Add check for passing coarray
	to allocatable noncoarray dummy.

2011-05-29  Tobias Burnus  <burnus@net-b.de>
	    Richard Guenther  <rguenther@suse.de>

	PR fortran/18918
	* trans-types.c (gfc_get_nodesc_array_type): Don't mess with
	the type's TREE_TYPE.
	* trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
	* trans.c (gfc_build_array_ref): Ditto.

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

	PR fortran/18918
	* check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
	* match.c (gfc_match_nullify): Ditto.
	* resolve.c (resolve_deallocate_expr): Ditto.
	* trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
	for nonpointers.

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

	PR fortran/48820
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
	* intrinsic.c (add_functions): Add rank intrinsic.
	(gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
	* intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
	* simplify.c (gfc_simplify_rank): New function.
	* intrinsic.texi (RANK): Add description for rank intrinsic.
	* check.c (gfc_check_rank): New function.

2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
	    Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48955
	* trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
	changed to GFC_ENABLE_REVERSE.
	* trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
	to GFC_INHIBIT_REVERSE.
	* gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE,
	GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
	* dependency.c (gfc_dep_resolver): Change names for elements of
	gfc_reverse as necessary. Change the logic so that forward
	dependences are remembered as well as backward ones. When both
	have appeared, force a temporary.

2011-05-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
	* trans-decl.c (has_coarray_vars, caf_init_block,
	gfor_fndecl_caf_register): New file-global variables.
	(gfc_finish_var_decl): Make sure that coarrays in main are static.
	(gfc_build_qualified_array): Generate coarray token variable.
	(gfc_get_symbol_decl): Don't use a static initializer for coarrays.
	(gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
	(gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
	static coarrays.
	(generate_local_decl): Check for local coarrays.
	(create_main_function): SYNC ALL before calling MAIN.
	(generate_coarray_sym_init): Register static coarray.
	(generate_coarray_init): Generate CAF registering constructor
	function.
	(gfc_generate_function_code): Call it, if needed, do not create
	cgraph twice.
	(gfc_generate_module_vars, gfc_process_block_locals): Call
	generate_coarray_init.
	* trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
	-fcoarray=lib.
	* trans.h (gfor_fndecl_caf_register): New variable.
	(lang_type): New element caf_token.
	(GFC_TYPE_ARRAY_CAF_TOKEN): New macro.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
	(gfortran$(exeext)): Use libcommon-target.a.

2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (cfe_register_funcs):  Also register
	character functions if their charlens are known and constant.
	Also register allocatable functions.

2011-05-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48699
	* match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
	selector is ALLOCATABLE.

2011-05-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48706
	* module.c (write_dt_extensions): Do not write extended types which
	are local to a subroutine.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.

2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.texi (set_fpe): Update documentation.
	* invoke.texi (-ffpe-trap): Likewise.
	* libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
	* options.c (gfc_handle_fpe_trap_option): Handle inexact and make
	precision an alias for it.

2011-05-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* trans-types.c (gfc_get_element_type): Handle scalar coarrays.
	(gfc_get_nodesc_array_type): Make a variant-type copy for scalar
	coarrays.
	* trans.c (gfc_build_array_ref): Return original type not variant
	copy for scalar coarrays.
	* trans-array.c (gfc_conv_array_ref): Ditto.

2011-05-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48700
	* trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
	argument to avoid memory leaks.

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

	* gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
	(Fortran 2008 status): Multi-image support for coarrays.
	(TR 19113 status): New section.

2011-05-15  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	actual argument is not an array; rank mismatch is diagnosted later.
	* trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
	scalar coarrays.
	* trans-types.c (gfc_get_array_type_bounds): Ditto.

2011-05-15  Joern Rennecke  <amylaar@spamcop.net>

	PR middle-end/46500
	* trans-types.c: Include "tm.h".
	[0] (c_size_t_size): Remove.

2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/48915
	* gfortran.texi (_gfortran_set_options): Even though -fbacktrace
	is now the default, the library defaults to backtracing disabled.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

	* lang.opt (fdump-core): Re-add as ignored option
	for backward compatibility.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/48915
	* gfortran.texi: Update mixed-language programming section
	reflecting the removal of the fdump-core option, and that
	-fbacktrace is now enabled by default.

2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/22572
	* frontend-passes.c (cfe_register_funcs):  Also register functions
	for potential elimination if the rank is > 0, the shape is unknown
	and reallocate on assignment is active.
	(create_var):  For rank > 0 functions with unknown shape, create
	an allocatable temporary.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* interface.c (compare_parameter): Skip diagnostic if
	actual argument is not an array; rank mismatch is diagnosted later.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

	* options.c (gfc_init_options, gfc_post_options): Enable
	-fstack-arrays by default if -Ofast is used.
	* invoke.texi (-fstack-arrays): Document this.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/48915
	* gfortran.h (gfc_option_t): Remove flag_dump_core.
	* gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
	(GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
	* intrinsic.texi (ABORT): Remove explanation of -fdump-core.
	* invoke.texi: Remove -fdump-core, document that -fbacktrace is
	enabled by default.
	* lang.opt: Remove -fdump-core.
	* options.c (gfc_init_options): Make backtrace default to enabled,
	remove dump_core.
	(gfc_handle_option): Remove OPT_fdump-core.
	* trans-decl.c: Pass a 0 to preserve ABI.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.

2011-05-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48972
	* io.c (resolve_tag_format, resolve_tag): Make sure
	that the string is of default kind.
	(gfc_resolve_inquire): Also resolve decimal tag.

2011-05-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48972
	* resolve.c (resolve_intrinsic): Don't resolve module
	intrinsics multiple times.

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

	PR fortran/48889
	* expr.c (gfc_is_constant_expr): Use e->value.function.esym
	instead of e->symtree->n.sym, if available.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* f95-lang.c (global_bindings_p): Return bool and simplify.

2011-05-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	PR fortran/48919
	* trans.h: Move gfc_init_coarray_decl prototype ...
	* gfortran.h: ... to here.
	* parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
	(gfc_parse_file): Update translate_all_program_units call.
	* trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
	new argument whether DECL_EXTERNAL should be used.
	(create_main_function): Update gfc_init_coarray_decl call.
	* trans-intrinsic.c (trans_this_image, trans_image_index,
	conv_intrinsic_cobound): Ditto.

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

	PR fortran/18918
	* trans-array.c (gfc_walk_variable_expr): Continue walking
	for scalar coarrays.
	* trans-intrinsic.c (convert_element_to_coarray_ref): New function.
	(trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
	(trans_this_image): Fix algorithm.
	* trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
	gfc_sym_type): Handle scalar coarrays.

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

	PR fortran/48858
	PR fortran/48820
	* lang.opt (std=f2008tr): New.
	* libgfortran.h (GFC_STD_F2008_TR): New macro constant.
	* decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
	procedures for -std=f2008tr/gnu/legacy.
	(gfc_match_import): Set sym to NULL.
	* options.c (set_default_std_flags,gfc_handle_option): Handle
	-std=f2008tr.
	* invoke.texi (-std=): Document -std=f2008tr.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
	* trans-io.c (add_case): Likewise.
	* trans-stmt.c (gfc_trans_integer_select): Likewise.
	(gfc_trans_character_select): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* trans-decl.c (trans_function_start): Do not set
	dont_save_pending_sizes_p.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

	* trans.h (gfc_chainon_list): Delete.
	* trans.c (gfc_chainon_list): Delete.

2011-05-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48864
	* invoke.texi (fno-protect-parens): Document
	that -Ofast implies -fno-protect-parens.
	* options.c (gfc_init_options, gfc_post_options):
	Make -Ofast imply -fno-protect-parens.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-decl.c (build_library_function_decl_1): Call
	build_function_type_vec.  Adjust argument list building accordingly.
	* trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
	* trans-types.c (gfc_get_function_type): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* trans-array.c (gfc_trans_array_constructor_value): Use
	size_int for bounds of range types.
	(gfc_trans_array_constructor_value): Use size_type_node
	for memcpy argument.
	* trans-common.c (build_field): Use gfc_charlen_type_node
	for lengths.
	* trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
	as type to build_int_cst.
	* trans-const.c (gfc_build_string_const): Use size_int
	for bounds of range types.
	(gfc_build_wide_string_const): Likewise.
	* trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
	for lengths.
	(gfc_trans_character_select): Likewise.
	(gfc_trans_character_select): Do not pass NULL
	as type to build_int_cst.
	(gfc_trans_character_select): Use size_int for bounds of range types.
	* trans-io.c (gfc_build_io_library_fndecls): Likewise.
	(add_case): Do not pass NULL as type to build_int_cst.
	(transfer_expr): Likewise.
	(transfer_array_desc): Likewise.
	* trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
	for lengths.
	(gfc_trans_assign_aux_var): Likewise.
	(create_main_function): Use size_int for bounds of range types.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
	NULL as type to build_int_cst.
	(gfc_conv_intrinsic_spacing): Likewise.
	(gfc_conv_intrinsic_rrspacing): Likewise.
	(gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
	argument to int_const_binop.

2011-05-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* trans-intrinsic.c (trans_this_image): Implement version with
	coarray argument.
	(conv_intrinsic_cobound): Simplify code.
	(gfc_conv_intrinsic_function): Call trans_this_image for
	this_image(coarray) except for -fcoarray=single.

2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/48720
	* gfortran.texi: Document the 'Q' exponent-letter extension.
	* invoke.texi: Document -Wreal-q-constant.
	* lang.opt: Add -Wreal-q-constant option.
	* gfortran.h: Add warn_real_q_constant to option struct.
	* primary.c (match_real_constant):  Use it.  Accept 'Q' as
	exponent-letter for REAL(16) real-literal-constant with a
	fallback to REAL(10) or error if REAL(10) is not available.
	* options.c (gfc_init_options, set_Wall) Set it.
	(gfc_handle_option): Handle new option.

2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-prase-tree.c (show_code_node):  Set the current
	namespace to the BLOCK before displaying it; restore
	afterwards.

2011-04-30  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48821
	* decl.c (gfc_match_import): Don't try to find the
	symbol if already found.

2011-04-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48746
	* trans-expr.c (fcncall_realloc_result): Set the bounds and the
	offset so that the lbounds are one.
	(gfc_trans_arrayfunc_assign): Add rank to arguments of above.

2011-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48462
	* trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
	automatic reallocation when the lhs is a target.

	PR fortran/48746
	* trans-expr.c (fcncall_realloc_result): Make sure that the
	result dtype field is set before the function call.

2011-04-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48810
	* resolve.c (resolve_typebound_generic_call): Don't check access
	flags of the specific function.

	PR fortran/48800
	* resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
	to AS_ASSUMED_SHAPE for function results.
	(resolve_fl_var_and_proc): Print also for function results with
	AS_DEFERRED an error, if they are not a pointer or allocatable.
	(resolve_types): Make sure arguments of procedures in interface
	blocks are resolved.

2011-04-29  Michael Matz  <matz@suse.de>

	* options.c (options.c): Set warn_maybe_uninitialized.

2011-04-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48112
	* resolve.c (resolve_fl_var_and_proc): Print diagnostic of
	function results only once.
	(resolve_symbol): Always resolve function results.

	PR fortran/48279
	* expr.c (gfc_check_vardef_context): Fix handling of generic
	EXPR_FUNCTION.
	* interface.c (check_interface0): Reject internal functions
	in generic interfaces, unless -std=gnu.

2011-04-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48788
	* resolve.c (resolve_global_procedure): Error recovery -
	avoid segfault for (non)character-returning functions.

2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* decl.c (gfc_match_end):  Check that the block name starts
	with "block@".
	* parse.c (gfc_build_block_ns):  Make block names unique by
	numbering them.

2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (inserted_block):  New variable.
	(changed_statement):  Likewise.
	(create_var):  Encase statement to be operated on in a BLOCK.
	Adjust code insertion for BLOCK.
	(cfe_code):  Set inserted_block and changed_statement to NULL.

2011-04-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* module.c (mio_array_spec): Set as->cotype on reading.
	* resolve.c (resolve_allocate_expr): Fix allocating coarray
	components.

2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48405
	* frontend_passes (cfe_register_funcs): Remove workaround for DO
	loops.
	(gfc_code_walker):  Make sure the pointer to the current
	statement doen't change when other statements are inserted.

2011-04-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.

2011-04-20  Jim Meyering  <meyering@redhat.com>

	* expr.c (free_expr0): Remove useless if-before-free.
	* gfortranspec.c (lang_specific_pre_link): Likewise.
	* interface.c (gfc_extend_expr): Likewise.
	* trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.

2011-04-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48588
	PR fortran/48692

	* module.c (fix_mio_expr): Commit created symbol.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* scanner.c (load_file): Use XCNEWVAR instead of xcalloc.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
	free.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* misc.c (gfc_getmem): Remove function.
	* gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
	usage with XCNEW or XCNEWVEC.
	* expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
	XCNEW or XCNEWVEC.
	* options.c (gfc_handle_module_path_options)
	(gfc_get_option_string): Likewise.
	* resolve.c (gfc_resolve_forall): Likewise.
	* simplify.c (simplify_transformation_to_array): Likewise.
	* target-memory.c (gfc_target_interpret_expr): Likewise.
	* trans-common.c (get_segment_info, copy_equiv_list_to_ns)
	(get_init_field): Likewise.
	* trans-expr.c (gfc_conv_statement_function): Likewise.
	* trans-io.c (nml_full_name): Likewise.
	* trans-stmt.c (gfc_trans_forall_1): Likewise.
	* scanner.c (load_file): Replace gfc_getmem usage with xcalloc.

2011-04-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48588
	* parse.c (resolve_all_program_units): Skip modules.
	(translate_all_program_units): Handle modules.
	(gfc_parse_file): Defer code generation for modules.

2011-04-19  Martin Jambor  <mjambor@suse.cz>

	* trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
	instead of cgraph_get_create_node.

2011-04-18  Jim Meyering  <meyering@redhat.com>

	remove now-unused definition of gfc_free
	* misc.c (gfc_free): Remove function.
	* gfortran.h (gfc_free): Remove its prototype.

2011-04-18  Jim Meyering  <meyering@redhat.com>

	convert each use of gfc_free (p) to free (p)
	Do that by running this command:
	  perl -pi -e    's/\bgfc_free ?\(/free (/' \
	    $(git grep -El '\bgfc_free ?\(')
	which also corrects the few uses that lacked a space between
	the function name and the open parenthesis.
	Manually undo the change to the function definition itself
	and its prototype.  They'll be removed next.
	* array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
	* constructor.c (node_free): Likewise.
	* cpp.c (dump_queued_macros): Likewise.
	* data.c (gfc_assign_data_value): Likewise.
	* decl.c (free_variable, free_value, gfc_free_data): Likewise.
	(gfc_free_data_all, match_old_style_init): Likewise.
	(gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
	Likewise.
	(gfc_match_modproc): Likewise.
	* dependency.c (check_section_vs_section): Likewise.
	* error.c (gfc_pop_error, gfc_free_error): Likewise.
	* expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
	(gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
	(find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
	Likewise.
	* frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
	(strip_function_call, optimize_comparison): Likewise.
	* interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
	(CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
	Likewise.
	* intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
	(gfc_convert_chartype): Likewise.
	* io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
	Likewise.
	(gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
	* match.c (gfc_free_iterator, gfc_match_associate): Likewise.
	(gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
	Likewise.
	(free_case, gfc_free_forall_iterator): Likewise.
	* misc.c: Likewise.
	* module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
	(free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
	(mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
	(mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
	(mio_full_typebound_tree, skip_list, load_equiv): Likewise.
	(free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
	* openmp.c (gfc_free_omp_clauses): Likewise.
	* options.c (gfc_post_options): Likewise.
	* parse.c (select_type_pop, parse_omp_structured_block): Likewise.
	* primary.c (gfc_free_structure_ctor_component): Likewise.
	* resolve.c (resolve_structure_cons, check_host_association): Likewise.
	(gfc_resolve_forall, resolve_equivalence): Likewise.
	* scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
	(gfc_define_undef_line, preprocessor_line, include_line): Likewise.
	(load_file, gfc_read_orig_filename): Likewise.
	* simplify.c (simplify_transformation_to_array): Likewise.
	(gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
	Likewise.
	(gfc_simplify_compiler_options): Likewise.
	* st.c (gfc_free_statement, gfc_free_statements): Likewise.
	(gfc_free_association_list): Likewise.
	* symbol.c (free_components, gfc_free_st_label, free_st_labels):
	Likewise.
	(gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
	(free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
	(free_common_tree, free_uop_tree, free_sym_tree): Likewise.
	(gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
	Likewise.
	(gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
	(gfc_free_namespace): Likewise.
	* trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
	(gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
	(gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
	* trans-common.c (get_init_field, create_common): Likewise.
	* trans-const.c (gfc_build_wide_string_const): Likewise.
	(gfc_conv_string_init): Likewise.
	* trans-decl.c (gfc_generate_function_code): Likewise.
	* trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
	Likewise.
	(SCALAR_POINTER, gfc_conv_statement_function): Likewise.
	(gfc_trans_subarray_assign): Likewise.
	* trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
	* trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
	(transfer_namelist_element, transfer_array_component): Likewise.
	* trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
	* trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
	* trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
	Likewise.

2011-04-15  Jim Meyering  <meyering@redhat.com>

	gfortran: remove cpp definition of free, ...
	in preparation for the s/gfc_free/free/ transformation.
	* gfortran.h (free): Remove macro definition that would otherwise
	prevent direct use of the function.

2011-04-18  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* array.c (gfc_match_array_ref): Check for too many codimensions.
	* check.c (gfc_check_image_index): Check number of elements
	in SUB argument.
	* simplify.c (gfc_simplify_image_index): Remove unreachable checks.

2011-04-18  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* iresolve.c (gfc_resolve_image_index): Set ts.type.
	* simplify.c (gfc_simplify_image_index): Don't abort if the bounds
	are not known at compile time and handle -fcoarray=lib.
	* trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
	IMAGE_INDEX.
	(conv_intrinsic_cobound): Fix comment typo.
	(trans_this_image): New function.
	* trans-array.c (gfc_unlikely): Move to trans.c.
	* trans.c (gfc_unlikely): Function moved from trans-array.c.
	(gfc_trans_runtime_check): Use it.
	* trans-io.c (gfc_trans_io_runtime_check): Ditto.
	* trans.h (gfc_unlikely): Add prototype.

2011-04-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48462
	* trans-expr.c (fcncall_realloc_result): Renamed version of
	realloc_lhs_bounds_for_intrinsic_call that does not touch the
	descriptor bounds anymore but makes a temporary descriptor to
	hold the result.
	(gfc_trans_arrayfunc_assign): Modify the reference to above
	renamed function.

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

	PR fortran/48624
	* trans-decl.c (gfc_get_extern_function_decl): Fix decl
	for external procedures with proc arguments.

2011-04-15  Michael Matz  <matz@suse.de>

	* trans-array.c (toplevel): Include gimple.h.
	(gfc_trans_allocate_array_storage): Check flag_stack_arrays,
	properly expand variable length arrays.
	(gfc_trans_auto_array_allocation): If flag_stack_arrays create
	variable length decls and associate them with their scope.
	* gfortran.h (gfc_option_t): Add flag_stack_arrays member.
	* options.c (gfc_init_options): Handle -fstack_arrays option.
	* lang.opt (fstack-arrays): Add option.
	* invoke.texi (Code Gen Options): Document it.
	* Make-lang.in (trans-array.o): Depend on GIMPLE_H.

2011-04-15  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
	code which is also causing an ICE.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* f95-lang.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

2011-04-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48360
	PR fortran/48456
	* trans-array.c (get_std_lbound): For derived type variables
	return array valued component lbound.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* trans-decl.c (gfc_generate_function_code): Call
	cgraph_get_create_node instead of cgraph_node.

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

	PR fortran/18918
	* simplify.c (simplify_bound_dim): Exit for
	ucobound's last dimension unless -fcoarray=single.
	* trans-array (gfc_conv_descriptor_size_1): Renamed from
	gfc_conv_descriptor_size, made static, has now from_dim and
	to_dim arguments.
	(gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
	(gfc_conv_descriptor_cosize): New function.
	* trans-array.h (gfc_conv_descriptor_cosize): New prototype.
	* trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
	and handle last codim of ucobound for when -fcoarray is not "single".

2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48448
	* gfortran.h (gfc_option_t):  Add warn_function_elimination and
	flag_frontend_optimize.
	* lang.opt (Wfunction-elimination):  Add.
	(ffrontend-optimize):  Add.
	* invoke.texi:  Add documentation for -Wfunction-elimination
	and -ffrontend-optimize.  Add -faggressive-function-elimination
	to list of code generation options.
	* frontend-passes.c (gfc_run_passes):  Run optimizations if
	flag_frontend_optimize is set.
	(warn_function_elimination):  New function.
	(cfe_expr_0):  Call it if requested to do so.
	* options.c (gfc_init_options):  Initiate warn_function_elimination
	and flag_frontend_optimize.
	(gfc_post_options):  Set flag_frontend_optimize if not specified
	by user, depending on the optimization level.
	(gfc_handle_option):  Handle -Wfunction-elimination and
	-ffrontend-optimize.

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

	PR fortran/18918
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
	call for this_image.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
	build_function_type_list instead of build_function_type.  Correct
	argument order for func_frexp and func_scalbn.

2011-04-05  Duncan Sands  <baldrick@free.fr>

	* f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.

2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes: (optimize_lexical_comparison): New function.
	(optimize_expr): Call it.
	(optimize_comparison): Also handle lexical comparison functions.
	Return false instad of -2 for unequal comparison.

2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48412
	* frontend-passes (cfe_expr_0):  Reverse the order of going
	through the loops.

2011-04-04  Tobias Burnus  <burnus@net-b.de>
	    Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/18918
	* check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
	* expr.c (gfc_is_coindexed): Ditto.
	* gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
	* interface.c (compare_parameter): Use gfc_expr_attr and
	gfc_is_coindexed.
	* resolve.c (check_dimension, compare_spec_to_ref,
	resolve_allocate_expr, check_data_variable): Update for
	DIMEN_THIS_IMAGE.
	* simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
	gfc_simplify_ucobound): Allow non-constant bounds.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec,
	gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
	gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
	gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
	gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_conv_loop_setup,
	gfc_trans_array_bounds, gfc_conv_expr_descriptor,
	gfc_walk_variable_expr): Handle codimen.
	* trans-decl.c (gfc_build_qualified_array): Save cobounds.
	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
	(conv_intrinsic_cobound): New function.
	(gfc_conv_intrinsic_function): Call it.
	(gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
	ucobound, lcobound, this_image.
	* fortran/trans-types.c (gfc_build_array_type): Save cobounds.
	(gfc_get_dtype): Honour corank.
	(gfc_get_nodesc_array_type): Save corank and codimensions.
	(gfc_get_array_type_bounds): Save cobound.
	* fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
	(gfc_array_kind): Add corank item.
	(GFC_TYPE_ARRAY_CORANK): New macro.

2011-04-03  Kai Tietz  <ktietz@redhat.com>

	PR middle-end/48422
	* Make-lang.in (f95-lang.o): Add some missing dependencies.

2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48352
	* frontend-passes (cfe_register_funcs):  Don't
	register functions if they appear as iterators in DO loops.

2011-03-30  Michael Matz  <matz@suse.de>

	PR fortran/47516
	* trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
	don't use local variable.
	(gfc_trans_arrayfunc_assign): Adjust caller.

2011-03-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48095
	* decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
	* module.c (MOD_VERSION): Bump.
	(mio_typespec): Read/write 'interface' field.
	* primary.c (match_string_constant,match_logical_constant): Remove
	unneeded code.
	(match_complex_constant): Make sure to clear the typespec.

2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (create_var):  Warn about creating an
	array temporary if requested.

2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47065
	* frontend-passes.c (optimize_trim): Also follow references, except
	when they are substring references or array references.

2011-03-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/18918
	* gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
	GFC_ISYM_NUM_IMAGES.
	(gfc_fcoarray): Add GFC_FCOARRAY_LIB.
	* intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
	rename.
	* invoke.texi (-fcoarray=): Document "lib" argument.
	* iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
	* libgfortran.h (libgfortran_stat_codes): Add comments.
	* options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
	* simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
	Handle GFC_FCOARRAY_LIB.
	* trans.h (gfc_init_coarray_decl): New prototype.
	(gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
	gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
	gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
	gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
	gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
	New global variables.
	* trans-decl.c: Declare several CAF functions (cf. above).
	(gfc_build_builtin_function_decls): Initialize those.
	(gfc_init_coarray_decl): New function.
	(create_main_function): Call CAF init/finalize functions.
	* trans-intrinsic.c (trans_this_image, trans_num_images): New.
	(gfc_conv_intrinsic_function): Call those.
	* trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
	Add code for GFC_FCOARRAY_LIB.

2011-03-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48291
	* class.c (get_unique_hashed_string): Adjust maximum allowable length
	for unique type string.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* scanner.c (preprocessor_line): Use filename_cmp
	instead of strcmp.

2011-03-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48174
	PR fortran/45304
	* trans-types.c (gfc_get_function_type): Don't use varargs if the
	procedure is known to have no arguments.

2011-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/22572
	* gfortran.h (gfc_option_t): Add
	flag_aggressive_function_elimination.
	(gfc_dep_compare_functions):  Add prototype.
	* lang.opt: Add faggressive-function-elimination.
	* invoke.texi: Document -faggressive-function-elimination.
	* frontend_passes (expr_array):  New static variable.
	(expr_size):  Likewise.
	(expr_count):  Likewise.
	(current_code):  Likewise.
	(current_ns):  Likewise.
	(gfc_run_passes):  Allocate and free space for expressions.
	(cfe_register_funcs):  New function.
	(create_var):  New function.
	(cfc_expr_0):  New function.
	(cfe_code):  New function.
	(optimize_namespace):  Invoke gfc_code_walker with cfe_code
	and cfe_expr_0.
	* dependency.c (gfc_dep_compare_functions):  New function.
	(gfc_dep_compare_expr):  Use it.
	* options.c (gfc_init_options):  Handle
	flag_aggressive_function_elimination.
	(gfc_handle_option):  Likewise.

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

	* arith.c (arith_power): Plug memory leak.

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

	PR fortran/48059
	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
	for polymorphic arguments.

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

	PR fortran/48054
	* intrinsic.texi: Clarify doc of logarithm functions.

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

	PR fortran/47552
	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
	the string length variable.

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

	PR fortran/47768
	* module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
	(mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.

2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/47850
	* expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
	the expression has an iterator.  Otherwise, iterate through the
	array, checking for constant expressions for each element.

2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/47802
	* intrinsic.texi: Update CTIME and FDATE documentation.

2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* invoke.texi (Option Summary, Fortran Dialect Options)
	(Preprocessing Options, Runtime Options, Code Gen Options):
	Fix vertical list spacing by using @itemx for additinoal
	items, empty line before @table.  Fix typos.

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

	PR fortran/47894
	* intrinsic.texi: Fix doc of the VERIFY intrinsic.

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

	PR fortran/47846
	* trans-stmt.c (gfc_trans_allocate): Fix allocation with
	type-spec of deferred-length strings.

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

	PR fortran/47886
	* openmp.c (gfc_resolve_omp_directive): Resolve if()
	condition of OpenMP's task.

2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/47894
	* intrinsic.texi: Fix doc of the VERIFY intrinsic.

2011-02-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47872
	* intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
	multitable for linebreak between different syntax variants.

2011-02-24  Richard Guenther  <rguenther@suse.de>

	PR fortran/47839
	* f95-lang.c (pushdecl): For externs in non-global scope push
	a copy of the decl into the BLOCK.

2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/40850
	* trans.c (gfc_prepend_expr_to_block): New function.
	* trans.h (gfc_prepend_expr_to_block): Declare.
	* trans-array.c (gfc_conv_array_parameter): Replace
	gfc_add_expr_to_block with gfc_prepend_expr_to_block.

2011-02-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45743
	* trans-decl.c (gfc_get_extern_function_decl): Don't use the
	gsymbol backend_decl if the procedure has a formal argument
	that is a procedure.

2011-02-22  Tobias Burnus  <burnus@net-b.de>

	PR fortran/41359
	* trans-stmt.c (gfc_trans_if_1): Use correct line for
	expressions in the if condition.

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

	PR fortran/47797
	* trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
	gfc_restore_backend_locus to have better debug locations.
	* trans-array.c (gfc_trans_deferred_array): Ditto.

2011-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45077
	PR fortran/44945
	* trans-types.c (gfc_get_derived_type): Remove code that looks
	for decls in gsym and add call to gfc_get_module_backend_decl.
	* trans.h: Add prototype for gfc_get_module_backend_decl.
	* trans-decl.c (gfc_get_module_backend_decl): New function.
	(gfc_get_symbol_decl): Call it.

2011-02-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/47348
	* trans-array.c (get_array_ctor_all_strlen): Move up in file.
	(get_array_ctor_var_strlen): Add block dummy and add call to
	get_array_ctor_all_strlen instead of giving up on substrings.
	Call gcc_unreachable for default case.
	(get_array_ctor_strlen): Add extra argument to in call to
	get_array_ctor_var_strlen.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47789
	* primary.c (gfc_match_structure_constructor): Handle empty parent
	types.

2011-02-18  Tobias Burnus

	PR fortran/47775
	* trans-expr.c (arrayfunc_assign_needs_temporary): Use
	esym to check whether the specific procedure returns an
	allocatable or pointer.

2011-02-18  Michael Matz  <matz@suse.de>

	PR fortran/45586
	* gfortran.h (struct gfc_component): Add norestrict_decl member.
	* trans.h (struct lang_type): Add nonrestricted_type member.
	* trans-expr.c (gfc_conv_component_ref): Search fields with correct
	parent type.
	* trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
	(gfc_sym_type): Use it.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47768
	* resolve.c (resolve_transfer): Reject variables with procedure pointer
	components.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47767
	* gfortran.h (gfc_check_access): Removed prototype.
	(gfc_check_symbol_access): Added prototype.
	* module.c (gfc_check_access): Renamed to 'check_access', made static.
	(gfc_check_symbol_access): New function, basically a shortcut for
	'check_access'.
	(write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
	'gfc_check_symbol_access'.
	(write_operator,write_module): Renamed 'gfc_check_access'.
	* resolve.c (resolve_fl_procedure,resolve_fl_derived,
	resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
	'gfc_check_symbol_access'.

2011-02-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47745
	* class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
	* decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
	'gfc_build_class_symbol'.
	(gfc_match_decl_type_spec): Reject unlimited polymorphism.
	* interface.c (matching_typebound_op): Check for 'class_ok' attribute.
	* match.c (select_type_set_tmp): Move setting of 'class_ok' into
	'gfc_build_class_symbol'.
	* primary.c (gfc_variable_attr): Check for 'class_ok' attribute.

2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/47633
	. simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47730
	* parse.c (gfc_build_block_ns): Commit 'block@' symbol.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47728
	* class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
	arrays.
	* primary.c (gfc_match_varspec): Avoid ICE for invalid class
	declaration.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47349
	* interface.c (get_expr_storage_size): Handle derived-type components.

2011-02-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47569
	* interface.c (compare_parameter): Avoid ICE with
	character components.

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

	* class.c (gfc_build_class_symbol): Reject polymorphic arrays.
	* decl.c (build_sym,build_struct,attr_decl1): Use return value of
	'gfc_build_class_symbol'.

2011-02-12  Michael Matz  <matz@suse.de>
	    Janus Weil  <janus@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/45586
	* trans-expr.c (conv_parent_component_references): Avoid unintendent
	skipping of parent compounds.

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

	PR fortran/47550
	* resolve.c (resolve_formal_arglist): PURE with VALUE
	and no INTENT: Add -std= diagnostics.

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

	PR fortran/47352
	* resolve.c (resolve_procedure_interface): If interface has a result
	variable, copy the typespec and set result pointer to self.

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

	PR fortran/47463
	* resolve.c (resolve_typebound_subroutine): Remove erroneous line.

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

	PR fortran/47637
	* trans-decl.c (init_intent_out_dt): Handle CLASS arguments.

2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io.c (match_io_element): Do not set dt if not inquire.

2011-02-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45290
	* expr.c (gfc_check_assign_symbol): Reject pointers as pointer
	initialization target.

2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gfortran.texi (Thread-safety): texinfo styling fixes.
	* intrinsic.texi: Likewise.

2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.texi (Compiler Characteristics): Add reference to
	thread-safety section.

2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.texi (Thread-safety): New section.
	* intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
	(GETENV): Likewise.
	(GET_ENVIRONMENT_VARIABLE): Likewise.
	(SYSTEM): Likewise.

2011-02-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/47592
	* trans-stmt.c (gfc_trans_allocate): For deferred character
	length allocations with SOURCE, store to the values and string
	length to avoid calculating twice.  Replace gfc_start_block
	with gfc_init_block to avoid unnecessary contexts and to keep
	declarations of temporaries where they should be. Tidy up the
	code a bit.

2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/42434
	* intrinsic.texi (SYSTEM_CLOCK): Update documentation.

2011-02-02  Janus Weil  <janus@gcc.gnu.org>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/47082
	* trans-expr.c (gfc_trans_class_init_assign): Add call to
	gfc_get_derived_type.
	* module.c (read_cleanup): Do not use unique_symtrees for vtabs
	or vtypes.

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

	PR fortran/47572
	* resolve.c (resolve_fl_variable): Handle polymorphic allocatables.

2011-02-01  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47565
	* trans-expr.c (gfc_conv_structure): Handle constructors for procedure
	pointer components with allocatable result.

2011-01-31  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47455
	* trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
	with pointer or allocatable result.

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

	PR fortran/47519
	* trans-stmt.c (gfc_trans_allocate): Improve handling of
	deferred character lengths with SOURCE.
	* iresolve.c (gfc_resolve_repeat): Calculate character
	length from source length and ncopies.
	* dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
	expressions for ALLOCATE.

2011-01-31  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47463
	* resolve.c (resolve_typebound_subroutine): Bug fix for the case of
	an argument of a typebound assignment being a component.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
	LD_STATIC_OPTION, LD_DYNAMIC_OPTION.

2011-01-31  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47042
	* resolve.c (resolve_fl_procedure): Reject stmt functions
	with pointer/allocatable attribute.

2011-01-31  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47042
	* interface.c (gfc_procedure_use): Add explicit interface check for
	pointer/allocatable functions.

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

	PR fortran/47523
	* trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
	expr and is assigned to a deferred character length scalar,
	make sure that the function is called before reallocation,
	so that the length is available. Include procedure pointer
	and procedure pointer component rhs as well.

	PR fortran/45170
	PR fortran/35810
	PR fortran/47350
	* gfortran.dg/allocatable_function_5.f90: New test not added by
	mistake on 2011-01-28.

2011-01-29  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47531
	* check.c (gfc_check_shape): Support kind argument in SHAPE.
	* intrinsic.c (add_functions): Ditto.
	* resolve.c (gfc_resolve_shape): Ditto.
	* simplify.c (gfc_simplify_shape): Ditto.
	* intrinsic.h (gfc_check_shape, gfc_resolve_shape,
	gfc_simplify_shape): Update prototypes.
	* intrinisc.text (SHAPE): Document kind argument.

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

	PR fortran/47507
	* resolve.c (resolve_formal_arglist): Allow arguments with VALUE
	attribute also without INTENT.

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

	* gfortran.texi (Fortran 2003 status): Mention support for
	nonconstant namelist variables.

2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/45170
	PR fortran/35810
	PR fortran/47350
	* interface.c (compare_actual_formal): An allocatable or pointer
	deferred length actual is only allowed if the formal argument
	is also deferred length. Clean up whitespace.
	* trans-expr.c (gfc_conv_procedure_call): Pass string length for
	deferred character length formal arguments by reference. Do the
	same for function results.
	(gfc_trans_pointer_assignment): Do not do runtime check of lhs
	and rhs character lengths, if deferred length lhs.  In this case
	set the lhs character length to that of the rhs.
	(gfc_conv_string_parameter): Remove assert that string length is
	an integer type.
	(is_scalar_reallocatable_lhs): New function.
	(alloc_scalar_allocatable_for_assignment): New function.
	(gfc_trans_assignment_1): Call above new function. If the rhs is
	a deferred character length itself, makes ure that the function
	is called before reallocation, so that the length is available.
	(gfc_trans_asssignment): Remove error about assignment to
	deferred length character variables.
	* gfortran.texi: Update entry about (re)allocation on
	assignment.
	* trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
	length character variables.
	* module.c (mio_typespec): Transfer deferred characteristic.
	* trans-types.c (gfc_get_function_type): New code to generate
	hidden typelist, so that those character lengths that are
	passed by reference get the right type.
	* resolve.c (resolve_contained_fntype): Supress error for
	deferred character length functions.
	(resolve_function, resolve_fl_procedure) The same.
	(check_symbols): Remove the error that support for
	entity with deferred type parameter is not yet implemented.
	(resolve_fl_derived): The same.
	match.c (alloc_opt_list): Allow MOLD for deferred length object.
	* trans-decl.c (gfc_get_symbol_decl): For deferred character
	length dummies, generate a local variable for string length.
	(create_function_arglist): Hidden length can be a pointer.
	(gfc_trans_deferred_vars): For deferred character length
	results and dummies, assign the string length to the local
	variable from the hidden argument on entry and the other way
	round on exit, as appropriate.

2011-01-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47474
	* trans-decl.c (gfc_generate_function_code): Fix init
	of allocatable result variable with allocatable components.

2011-01-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47472
	* options.c (gfc_handle_module_path_options): Save
	module path without trailing slash as include path.

2011-01-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47448
	* interface.c (gfc_check_operator_interface): Fix
	defined-assignment check.

2011-01-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47421
	* trans-decl.c (gfc_trans_deferred_vars): Do not nullify
	scalar allocatable dummy arguments.

2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/38536
	* resolve.c (gfc_iso_c_func_interface):  For C_LOC,
	check for array sections followed by component references
	which are illegal.  Also check for coindexed arguments.

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

	PR fortran/47399
	* primary.c (gfc_match_varspec): Relax gcc_assert to allow for
	PARAMETER TBP.

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

	PR fortran/47394
	* error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
	Use defined instead of magic number exit status codes.
	* scanner.c (include_line, gfc_new_file): Ditto.

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

	PR fortran/47377
	* expr.c (gfc_check_pointer_assign): Reject expr data-targets
	without pointer attribute.

2011-01-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47240
	* resolve.c (expression_rank): Fix rank of procedure poiner components.
	* trans-expr.c (gfc_conv_procedure_call): Take care of procedure
	pointer components as actual arguments.

2011-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/47331
	* gfortran.h (struct gfc_omp_saved_state): New type.
	(gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
	* resolve.c (resolve_global_procedure): Call it around gfc_resolve
	call.
	* openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
	functions.

2011-01-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47327
	* invoke.texi (Options to request or suppress errors
	and warnings): Fix cross link.

2011-01-15  Tobias Burnus  <burnus@net-b.de>

	* gfortran.texi: Update Fortran 2003 Status section.

	PR fortran/47177
	* invoke.texi: Add missing "-E" to the -dM example.

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

	PR fortran/47268
	* intrinsic.texi (get_command_argument, get_environment_variable):
	Mark arguments as optional in the Arguments section.

2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/47260
	* trans-decl.c (gfc_get_extern_function_decl,
	build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
	calling decl_attributes.

2011-01-13  Tobias Burnus  <burnus@net-b.de>
	    Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/45848
	PR fortran/47204
	* gfortran.h (gfc_code): Move union ext's case_list into
	the struct block.
	* dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
	by "block.".
	* frontend-passes.c (gfc_code_walker): Ditto.
	* match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
	gfc_match_type_is, gfc_match_class_is): Ditto.
	* resolve.c (resolve_select, resolve_select_type): Ditto.
	* st.c (gfc_free_statement): Ditto.
	* trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
	gfc_trans_character_select): Ditto.
	* parse.c (resolve_all_program_units): For error recovery, avoid
	segfault is proc_name is NULL.

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

	PR fortran/47051
	* trans-array.c (gfc_alloc_allocatable_for_assignment): Change
	to be standard compliant by testing for shape rather than size
	before skipping reallocation. Improve comments.

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

	PR fortran/47224
	* resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
	of code.

2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/38536
	* resolve.c (is_scalar_expr_ptr):  For a substring reference,
	use gfc_dep_compare_expr to compare start and end expession.
	Add FIXME for using gfc_deb_compare_expr elsewhere.

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

	PR fortran/46313
	* class.c (get_unique_type_string): Make type name start with upper
	case letter.

2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/46405
	* invoke.texi:  Mention -ffree-line-length-none and
	-ffixed-line-length-none for preprocessing.

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

	PR fortran/46896
	* trans-expr.c (gfc_conv_procedure_call): With a non-copying
	procedure argument (eg TRANSPOSE) use a temporary if there is
	any chance of aliasing due to host or use association.
	(arrayfunc_assign_needs_temporary): Correct logic for function
	results and do not use a temporary for implicitly PURE
	variables.  Use a temporary for Cray pointees.
	* symbol.c (gfc_add_save): Explicit SAVE not compatible with
	implicit pureness of containing procedure.
	* decl.c (match_old_style_init, gfc_match_data): Where decl
	would fail in PURE procedure, set implicit_pure to zero.
	* gfortran.h: Add implicit_pure to structure symbol_attr and
	add prototype for function gfc_implicit_pure.
	* expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
	Where decl would fail in PURE procedure, reset implicit_pure.
	* io.c (match_vtag, gfc_match_open, gfc_match_close,
	gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
	* match.c (gfc_match_critical, gfc_match_stopcode,
	sync_statement, gfc_match_allocate, gfc_match_deallocate): The
	same.
	* parse.c (decode_omp_directive): The same.
	(parse_contained): If not PURE, set implicit pure attribute.
	* resolve.c (resolve_formal_arglist, resolve_structure_cons,
	resolve_function, resolve_ordinary_assign): The same.
	(gfc_implicit_pure): New function.
	* module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
	to ab_attribute enum and use it in this function.

2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45777
	* symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
	make static and move in front of its only caller, to ...
	* trans-array.c (symbols_could_alias): ... here.
	Pass information about pointer and target status as
	arguments.  Allocatable arrays don't alias anything
	unless they have the POINTER attribute.
	(gfc_could_be_alias):  Keep track of pointer and target
	status when following references.  Also check if typespecs
	of components match those of other components or symbols.

2011-01-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/41580
	* class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
	* intrinsic.c (add_functions): Use simplify functions for
	EXTENDS_TYPE_OF and SAME_TYPE_AS.
	* intrinsic.h (gfc_simplify_extends_type_of,
	gfc_simplify_same_type_as): New prototypes.
	* simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
	gfc_simplify_same_type_as): New functions.

2011-01-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47189
	PR fortran/47194
	* gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
	* class.c (gfc_class_null_initializer): Initialize _vptr to declared
	type.
	* expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
	* resolve.c (resolve_deallocate_expr): _data component will be added
	at translation stage.
	* symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
	* trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.

2011-01-06  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/33117
	PR fortran/46478
	* parse.c (parse_interface): Remove check for procedure types.
	* interface.c (check_interface0): Verify that procedures are
	either all SUBROUTINEs or all FUNCTIONs.

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47180
	* trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
	'vtab' is initialized).

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47180
	* trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
	assignment, set the _vptr component to the declared type.

2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/46017
	* resolve.c (resolve_allocate_deallocate): Follow references to
	check for duplicate occurence of allocation/deallocation objects.

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47024
	* trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
	of polymorphic allocatables according to their declared type.

2011-01-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46448
	* class.c (gfc_find_derived_vtab): Set the module field for the copying
	routine to make sure it receives module name mangling.

2011-01-03  Jakub Jelinek  <jakub@redhat.com>

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

2011-01-03  Janus Weil  <janus@gcc.gnu.org>

	* intrinsic.texi (LEADZ): Fix example.

2011-01-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46408
	* class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
	routine.

Copyright (C) 2011 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.
