OSDN Git Service

2010-09-06 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 4e3fb7d..26974bb 100644 (file)
@@ -1,3 +1,955 @@
+2010-09-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45560
+       * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
+
+2010-09-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45560
+       * dump-parse-tree.c (gfc_debug_expr): New function.
+
+2010-09-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/38282
+       * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
+       (check_specific): Special case for those intrinsics.
+       * gfortran.h (gfc_isym_id): Add new intrinsics
+       * intrinsic.h (gfc_check_transf_bit_intrins,
+       gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
+       gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
+       New prototypes.
+       * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
+       gfc_resolve_iparity, resolve_transformational): New functions.
+       (gfc_resolve_product, gfc_resolve_sum,
+       gfc_resolve_parity): Use resolve_transformational.
+       * check.c (gfc_check_transf_bit_intrins): New function.
+       * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
+       gfc_simplify_iparity, do_bit_any, do_bit_ior,
+       do_bit_xor, simplify_transformation): New functions.
+       (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
+       gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
+       * trans-intrinsic.c (gfc_conv_intrinsic_arith,
+       gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
+       Handle IALL, IANY and IPARITY intrinsics.       
+       * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
+       order.
+       (IALL, IANY, IPARITY): Document new intrinsics.
+
+2010-09-05  Tobias Burnus <burnus@net-b.de>
+
+       PR fortran/45186
+       * f95-lang.c (gfc_truthvalue_conversion): Use
+       fold_build[0-9]_loc instead of fold_build[0-9].
+       * convert.c (convert): Ditto.
+       * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
+       build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
+       gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
+       gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
+       gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
+       gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
+       gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
+       gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
+       gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
+       gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
+       gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
+       gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
+       gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
+       gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
+       gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
+       gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
+       gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
+       gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
+       gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
+       gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
+       gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
+       gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
+       size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
+       gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
+       gfc_conv_intrinsic_transfer, gfc_conv_allocated,
+       gfc_conv_associated, gfc_conv_same_type_as,
+       gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
+
+2010-09-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45530
+       * resolve.c (resolve_fl_namelist): Change constraint checking
+       order to prevent endless loop.
+
+2010-09-04  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45507
+       * resolve.c (resolve_allocate_expr): Generate default initializers
+       already at this point, resolve them and put them into expr3, ...
+       * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
+       translation stage.
+
+2010-09-03  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45186
+       * trans-intrinsic.c (gfc_conv_intrinsic_sign,
+       gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
+       of build_call_expr.
+       * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
+       gfc_conv_string_length, gfc_conv_substring,
+       gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
+       gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
+       gfc_conv_expr_op, gfc_build_compare_string,
+       gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
+       gfc_conv_derived_to_class, conv_isocbinding_procedure,
+       gfc_conv_procedure_call, fill_with_spaces,
+       gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
+       gfc_trans_structure_assign, gfc_trans_pointer_assignment,
+       gfc_trans_scalar_assign, gfc_trans_zero_assign,
+       gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
+       fold_build[0-9] to fold_build[0-9]_loc.
+       * trans-io.c (set_parameter_const, set_parameter_value,
+       set_parameter_ref, gfc_convert_array_to_string, set_string,
+       set_internal_unit, io_result, set_error_locus,
+       nml_get_addr_expr, build_dt): Ditto.
+       * trans-openmp.c (gfc_omp_clause_default_ctor,
+       gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
+       gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
+       gfc_trans_omp_do): Ditto.
+       * trans.c (gfc_add_modify, gfc_build_addr_expr,
+       gfc_build_array_ref, gfc_trans_runtime_error_vararg,
+       gfc_trans_runtime_check, gfc_call_malloc,
+       gfc_allocate_with_status, gfc_allocate_array_with_status,
+       gfc_call_free, gfc_deallocate_with_status,
+       gfc_call_realloc): Ditto.
+
+2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
+       arglists for pure user functions, or for those intrinsic
+       functions which are also pure.
+       * intrinsics.c (add_conv):  Mark conversion functions as pure.
+       (add_char_conversions):  Likewise.
+
+2010-09-03  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/34162
+       * resolve.c (resolve_actual_arglist): Allow internal procedure
+       as actual argument with Fortran 2008.
+
+2010-09-03  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/44602
+       * gfortran.h (struct gfc_code): Renamed `whichloop' to
+       `which_construct' as this is no longer restricted to loops.
+       * parse.h (struct gfc_state_data): New field `construct'.
+       * match.c (match_exit_cycle): Handle EXIT from non-loops.
+       * parse.c (push_state): Set `construct' field.
+       * resolve.c (resolve_select_type): Extend comment.
+       * trans-stmt.c (gfc_trans_if): Add exit label.
+       (gfc_trans_block_construct), (gfc_trans_select): Ditto.
+       (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
+       (gfc_trans_do), (gfc_trans_do_while): Ditto.
+       (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
+       (gfc_trans_cycle): Ditto.
+       (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
+
+2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
+       (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
+       (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
+       * intrinsic.texi (RSHIFT): Fix documentation.
+
+2010-09-02  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45186
+       * trans-common.c (create_common): Change build[0-9] to
+       build[0-9]_loc.
+       * trans-const.c (gfc_conv_constant_to_tree,
+       gfc_conv_constant_to_tree): Ditto.
+       * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
+       gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
+       add_argument_checking, create_main_function,
+       gfc_generate_return): Ditto.
+       * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
+       * trans-stmt.c (allocate_temp_for_forall_nest_1,
+       compute_inner_temp_size, compute_overall_iter_number,
+       generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
+       gfc_conv_elemental_dependencies, gfc_do_allocate,
+       gfc_evaluate_where_mask, gfc_trans_allocate,
+       gfc_trans_arithmetic_if, gfc_trans_call,
+       gfc_trans_character_select, gfc_trans_deallocate,
+       gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
+       gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
+       gfc_trans_integer_select, gfc_trans_logical_select,
+       gfc_trans_pointer_assign_need_temp, gfc_trans_return,
+       gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
+       gfc_trans_where_assign) Ditto.
+
+2010-09-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44541
+       * resolve.c (resolve_symbol): Correct check for attributes of CLASS
+       variable.
+
+2010-09-02  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45489
+       * resolve.c (apply_default_init): Mark symbol as referenced,
+       if it is initialized.
+       (resolve_symbol): Change intialized check for BT_DERIVED such
+       that also function results get initialized; remove now obsolete
+       gfc_set_sym_referenced for BT_CLASS.
+
+2010-09-01  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44541
+       * class.c (gfc_find_derived_vtab): Add component '$def_init'.
+       * resolve.c (resolve_allocate_expr): Defer handling of default
+       initialization to 'gfc_trans_allocate'.
+       (apply_default_init,resolve_symbol): Handle polymorphic dummies.
+       (resolve_fl_derived): Suppress error messages for vtypes.
+       * trans-stmt.c (gfc_trans_allocate): Handle initialization via
+       polymorphic MOLD expression.
+       * trans-expr.c (gfc_trans_class_init_assign): Now only used for
+       dummy initialization.
+
+2010-09-01  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.texi (preprocessing): Update URL to COCO.
+
+2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
+       array quad_decls. Remove unnecessary assignment.
+
+2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-expr.c (gfc_conv_power_op): Handle floating-point types
+       other than long double.
+       * mathbuiltins.def: Add builtins from the POW and CPOW family.
+       * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
+       * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
+       prefix to function name.
+       (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
+       (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
+       function name.
+       (gfc_conv_intrinsic_exponent): Likewise.
+       (gfc_conv_intrinsic_abs): Likewise.
+       (gfc_conv_intrinsic_mod): Likewise.
+       (gfc_conv_intrinsic_sign): Likewise.
+       (gfc_conv_intrinsic_arith): Likewise.
+       (gfc_conv_intrinsic_fraction): Likewise.
+       (gfc_conv_intrinsic_nearest): Likewise.
+       (gfc_conv_intrinsic_spacing): Likewise.
+       (gfc_conv_intrinsic_rrspacing): Likewise.
+       (gfc_conv_intrinsic_scale): Likewise.
+       (gfc_conv_intrinsic_set_exponent): Likewise.
+
+2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
+       * intrinsic.h (gfc_resolve_execute_command_line): New function.
+       * iresolve.c (gfc_resolve_execute_command_line): New function.
+       * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
+       * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
+
+2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/38282
+       * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
+       and parity{,l,ll} builtins.
+       * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
+       (gfc_conv_intrinsic_function): Call above new functions.
+       * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
+       functions.
+       * intrinsic.texi: Document POPCNT and POPPAR.
+
+2010-08-30  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45456
+       * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
+
+2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * Make-lang.in: Add frontend-passes.o dependencies.
+
+2010-08-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/42769
+       * resolve.c (resolve_structure_cons): For derived types, make sure the
+       type has been resolved.
+       (resolve_typebound_procedures): Make sure the vtab has been generated.
+
+2010-08-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45439
+       * match.c (gfc_match_select_type): Give the associate-name the
+       FL_VARIABLE attribute.
+
+2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * simplify.c (gfc_simplify_bessel_n2): Fix indention
+       and argument type.
+
+2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/45436
+       * trans-types.c (gfc_init_kinds): Disable TFmode.
+
+2010-08-27  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45432
+       * match.c (gfc_match_allocate): Avoid double free on error.
+
+2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/32049
+       * gfortran.h (gfc_real_info): Add c_float128 field.
+       * mathbuiltins.def: Indicate which builtins are const.
+       * trans-types.h (float128_type_node, complex_float128_type_node,
+       gfc_real16_is_float128): New variables.
+       * trans-types.c (float128_type_node, complex_float128_type_node,
+       gfc_real16_is_float128): New variables.
+       (gfc_init_kinds): Allow TFmode.
+       (gfc_build_real_type): Mark __float128 types as such.
+       (gfc_init_types): Initialize float128_type_node and
+       complex_float128_type_node
+       * f95-lang.c (gfc_init_builtin_functions): Adjust for new
+       argument of OTHER_BUILTIN macro.
+       * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
+       (builtin_decl_for_precision): Special case for __float128.
+       (builtin_decl_for_float_kind): Likewise.
+       (define_quad_builtin): New function.
+       (gfc_build_intrinsic_lib_fndecls): Create all __float128
+       library decls if necessary. Store them in the real16_decl and
+       complex16_decl builtin map fields.
+       (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
+       library function names.
+
+2010-08-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/33197
+       * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
+       * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
+       gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
+       gfc_resolve_parity): New prototypes.
+       * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
+       GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
+       * gcc/fortran/iresolve.c (gfc_resolve_norm2,
+       gfc_resolve_parity): New functions.
+       * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
+       New functions.
+       * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
+       gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
+       * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
+       * gcc/fortran/simplify.c (simplify_transformation_to_array):
+       Add post-processing opterator.
+       (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
+       gfc_simplify_product, gfc_simplify_sum): Update call.
+       (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
+       gfc_simplify_parity): New functions.
+
+2010-08-27  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45420
+       * match.c (select_type_set_tmp): Add the possibility to reset the
+       temporary to NULL.
+       (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
+
+2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * dependency.c (check_section_vs_section):  Single test for
+       identical strides which takes into account that only one
+       of the strides may be NULL.
+
+2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/43217
+       * primary.c (match_hollerith_constant): Calculate padding needed to
+       fill default integer and allocate string for that size.  Set pad bytes
+       to ' '.
+       * gfortran.h: Add hollerith pad value to type spec union.
+       * data.c (create_character_initializer): Fix spelling of function name.
+       Use hollerith pad value to calculate length.
+       * arith.c (hollerith2representation); Use hollerith pad value to
+       calculate length.
+
+2010-08-26  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/38936
+       PR fortran/44047
+       PR fortran/45384
+       * gfortran.h (struct gfc_association_list): New flag `dangling'.
+       (gfc_build_block_ns): Declared here...
+       * parse.h (gfc_build_block_ns): ...instead of here.
+       * trans.h (gfc_process_block_locals): Expect additionally the
+       gfc_association_list of BLOCK (if present).
+       * match.c (select_type_set_tmp): Create sym->assoc for temporary.
+       * resolve.c (resolve_variable): Only check for invalid *array*
+       references on associate-names.
+       (resolve_assoc_var): New method with code previously in resolve_symbol.
+       (resolve_select_type): Use association to give the selector and
+       temporaries their values instead of ordinary assignment.
+       (resolve_fl_var_and_proc): Allow CLASS associate-names.
+       (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
+       * trans-stmt.c (gfc_trans_block_construct): Pass association-list
+       to `gfc_process_block_locals' to match new interface.
+       * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
+       here automatically.
+       (gfc_process_block_locals): Defer them rather here when linked to
+       from the BLOCK's association list.
+
+2010-08-25  Jakub Jelinek  <jakub@redhat.com>
+
+       * trans-decl.c (gfc_build_intrinsic_function_decls): Set
+       TREE_NOTHROW on fndecls that can't throw.  Set
+       TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
+       (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
+       gfor_fndecl_associated.
+
+2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/45380
+       * frontend-passes.c (optimize_equality): Don't optimize array equality
+
+2010-08-23  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45366
+       * resolve.c (resolve_procedure_interface): New function split off from
+       'resolve_symbol'.
+       (resolve_formal_arglist): Call it here ...
+       (resolve_symbol): ... and here.
+
+2010-08-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * Make-lang.in (gfortranspec.o): Update dependencies.
+       * gfortranspec.c: Include coretypes.h before gcc.h.  Include
+       opts.h.
+       (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
+       (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
+       (g77_xargc): Make unsigned.
+       (g77_xargv): Change to g77_x_decoded_options.
+       (g77_newargc): Make unsigned.
+       (g77_newargv): Change to g77_new_decoded_options.
+       (strings_same, options_same): New.
+       (append_arg): Use cl_decoded_option structures.
+       (append_option): New.
+       (add_arg_libgfortran): New.
+       (lang_specific_driver): Use cl_decoded_option structures.
+
+2010-08-21  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45271
+       PR fortran/45290
+       * class.c (add_proc_comp): Add static initializer for PPCs.
+       (add_procs_to_declared_vtab): Modified comment.
+       * module.c (mio_component): Add argument 'vtype'. Don't read/write the
+       initializer if the component is part of a vtype.
+       (mio_component_list): Add argument 'vtype', pass it on to
+       'mio_component'.
+       (mio_symbol): Modified call to 'mio_component_list'.
+       * trans.h (gfc_conv_initializer): Modified prototype.
+       (gfc_trans_assign_vtab_procs): Removed.
+       * trans-common.c (create_common): Modified call to
+       'gfc_conv_initializer'.
+       * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
+       gfc_emit_parameter_debug_info): Modified call to
+       'gfc_conv_initializer'.
+       (build_function_decl): Remove assertion.
+       * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
+       Removed call to 'gfc_trans_assign_vtab_procs'.
+       (gfc_conv_initializer): Add argument 'procptr'.
+       (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
+       (gfc_trans_assign_vtab_procs): Removed.
+       * trans-stmt.c (gfc_trans_allocate): Removed call to
+       'gfc_trans_assign_vtab_procs'.
+
+2010-08-21  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/36158
+       PR fortran/33197
+       * intrinsic.c (add_sym): Init value attribute.
+       (set_attr_value): New function.
+       (add_functions) Use it and add JN/YN resolvers.
+       * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
+       * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
+       * gfortran.h (gfc_intrinsic_arg): Add value attribute.
+       * iresolve.c (gfc_resolve_bessel_n2): New function.
+       * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
+       formal arg list.
+       (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
+       Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
+       * simplify.c (): For YN set to -INF if previous values
+       was -INF.
+       * trans-expr.c (gfc_conv_procedure_call): Don't crash
+       if sym->as is NULL.
+       * iresolve.c (gfc_resolve_extends_type_of): Set the
+       type of the dummy argument to the one of the actual.
+
+2010-08-20  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
+
+2010-08-20  Joseph Myers  <joseph@codesourcery.com>
+
+       * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
+       comment, not -lg2c.
+
+2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * trans-openmp.c: Use FOR_EACH_VEC_ELT.
+
+2010-08-19  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/29785
+       PR fortran/45016
+       * trans.h (struct gfc_se): New flag `byref_noassign'.
+       * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
+       (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
+       * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
+       and check for compile-time errors with those.
+       * trans-decl.c (trans_associate_var): Use new routine
+       `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
+       * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
+       (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
+       (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
+       (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
+       * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
+       rank remapping for assignment.
+
+2010-08-19  Tobias Burnus  <burnus@net-b.de>
+
+       * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
+       * * simplify.c (gfc_simplify_bessel_yn): Change recursive
+       into recurrence.
+
+2010-08-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/36158
+       PR fortran/33197
+       * check.c (gfc_check_bessel_n2): New function.
+       * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
+       * intrinsic.c (add_functions): Add transformational version
+       of the Bessel_jn/yn intrinsics.
+       * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
+       gfc_simplify_bessel_yn2): New prototypes.
+       * intrinsic.texi (Bessel_jn, Bessel_yn): Document
+       transformational variant.
+       * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
+       Check for negative order.
+       (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
+       gfc_simplify_bessel_yn2): New functions.
+
+2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/41859
+       * resolve.c (resolve_transfer): Traverse operands and set expression
+       to be checked to a non EXPR_OP type.
+
+2010-08-19  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45290
+       * gfortran.h (gfc_add_save): Modified prototype.
+       * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
+       (match_pointer_init): New function to match F08 pointer initialization.
+       (variable_decl,match_procedure_decl,match_ppc_decl): Use
+       'match_pointer_init'.
+       (match_attr_spec): Module variables are implicitly SAVE.
+       (gfc_match_save): Modified call to 'gfc_add_save'.
+       * expr.c (gfc_check_assign_symbol): Extra checks for pointer
+       initialization.
+       * primary.c (gfc_variable_attr): Handle SAVE attribute.
+       * resolve.c (resolve_structure_cons): Add new argument and do pointer
+       initialization checks.
+       (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
+       (resolve_values): Call 'resolve_structure_cons' directly with init arg.
+       (resolve_fl_variable): Handle SAVE_IMPLICIT.
+       * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
+       SAVE_IMPLICIT.
+       * trans-decl.c (gfc_create_module_variable): Module variables with
+       TARGET can already exist.
+       * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
+       (gfc_conv_initializer): Implement non-NULL pointer
+       initialization.
+
+2010-08-18  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45295
+       * intrinsic.texi (selected_char_kind): Document ISO_10646
+       support.
+
+2010-08-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/45304
+       * trans-decl.c (build_library_function_decl_1): Chain on
+       void_list_node instead of creating a new TREE_LIST.
+       * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
+       * trans-types.c (gfc_get_function_type): Likewise.  Set
+       typelist to void_list_node for the main program.
+
+2010-08-17  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/38936
+       * gfortran.h (struct gfc_association_list): New member `where'.
+       (gfc_is_associate_pointer) New method.
+       * match.c (gfc_match_associate): Remember locus for each associate
+       name matched and do not try to set variable flag.
+       * parse.c (parse_associate): Use remembered locus for symbols.
+       * primary.c (match_variable): Instead of variable-flag check for
+       associate names set it for all such names used.
+       * symbol.c (gfc_is_associate_pointer): New method.
+       * resolve.c (resolve_block_construct): Don't generate assignments
+       to give associate-names their values.
+       (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
+       (resolve_symbol): Set some more attributes for associate variables,
+       set variable flag here and check it and don't try to build an
+       explicitely shaped array-spec for array associate variables.
+       * trans-expr.c (gfc_conv_variable): Dereference in case of association
+       to scalar variable.
+       * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
+       (gfc_sym_type): Return pointer type for association to scalar vars.
+       * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
+       (trans_associate_var): New method.
+       (gfc_trans_deferred_vars): Handle association symbols.
+
+2010-08-16  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
+       RejectDriver.
+       (MMDX): Change back to MMD.  Mark NoDriverArg instead of
+       RejectDriver.
+       * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
+       OPT_MDX and OPT_MMDX.
+
+2010-08-16  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (MDX, MMDX): Mark RejectDriver.
+
+2010-08-15  Janus Weil  <janus@gcc.gnu.org>
+
+       * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
+       vtabs for generics any more).
+
+2010-08-15  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/38936
+       * gfortran.h (gfc_find_proc_namespace): New method.
+       * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
+       around with namespace.
+       * symbol.c (gfc_find_proc_namespace): New method.
+       * trans-decl.c (gfc_build_qualified_array): Use it for correct
+       value of nest.
+       * primary.c (gfc_match_varspec): Handle associate-names as arrays.
+       * parse.c (parse_associate): Removed assignment-generation here...
+       * resolve.c (resolve_block_construct): ...and added it here.
+       (resolve_variable): Handle names that are arrays but were not parsed
+       as such because of association.
+       (resolve_code): Fix BLOCK resolution.
+       (resolve_symbol): Generate array-spec for associate-names.
+
+2010-08-15  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45211
+       * decl.c (verify_c_interop_param): Remove superfluous space (" ").
+       (verify_c_interop): Handle unresolved DT with bind(C).
+
+2010-08-15  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-expr.c (gfc_conv_expr_present): Regard nullified
+       pointer arrays as absent.
+       (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
+       dummys as absent argument.
+       * interface.c (compare_actual_formal,compare_parameter):
+       Ditto.
+
+2010-08-15  Tobias Burnus  <burnus@net-b.de>
+
+       * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
+       dummies with intent(in).
+
+2010-08-15  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/45197
+       * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
+       routines not IMPURE also as PURE.
+       * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
+       `NO_CLASS' in `CLASS_IMPURE'.
+       (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
+       (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
+       (add_functions): Ditto.
+       (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
+       * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
+       (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
+       are not ALLOCATABLE and have their INTENT specified.
+
+2010-08-13  Daniel Kraft  <d@domob.eu>
+
+       * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
+       * array.c (gfc_match_array_spec): Match implied-shape specification and
+       handle AS_IMPLIED_SHAPE correctly otherwise.
+       * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
+       (variable_decl): Some checks for implied-shape declaration.
+       * resolve.c (resolve_symbol): Assert that array-spec is no longer
+       AS_IMPLIED_SHAPE in any case.
+
+2010-08-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (MD, MMD): Change to MDX and MMDX.
+       * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
+
+2010-08-11  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44595
+       * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
+       'gfc_intrinsic_arg'.
+       (check_arglist,check_specific): Add reference to 'name' field.
+       (init_arglist): Remove reference to 'name' field.
+       * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
+       * check.c (variable_check): Reverse order of checks. Respect intent of
+       formal arg.
+       (int_or_proc_check): New function.
+       (coarray_check): New function.
+       (allocatable_check): New function.
+       (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
+       (gfc_check_complex): Use 'int_or_real_check'.
+       (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
+       gfc_check_ucobound): Use 'coarray_check'.
+       (gfc_check_pack): Use 'real_or_complex_check'.
+       (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
+       'int_or_proc_check'.
+       (scalar_check,type_check,numeric_check,int_or_real_check,
+       real_or_complex_check,kind_check,double_check,logical_array_check,
+       array_check,same_type_check,rank_check,nonoptional_check,
+       kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
+       gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
+       gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
+       gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
+       gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
+       gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
+       gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
+       to 'name' field.
+
+2010-08-10  Daniel Kraft  <d@domob.eu>
+
+       * gfortran.texi (Interoperability with C): Fix ordering in menu
+       and add new subsection about pointers.
+       (Interoperable Subroutines and Functions): Split off the pointer part.
+       (working with Pointers): New subsection with extended discussion
+       of pointers (especially procedure pointers).
+
+2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/44235
+       * array.c (gfc_ref_dimen_size):  Add end argument.
+       If end is non-NULL, calculate it.
+       (ref_size):  Adjust call to gfc_ref_dimen_size.
+       (gfc_array_dimen_size):  Likewise.
+       (gfc_array_res_shape):  Likewise.
+       * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
+       * resolve.c (resolve_array_ref):  For stride not equal to -1,
+       fill in the lowest possible end.
+
+2010-08-09  Janus Weil  <janus@gcc.gnu.org>
+
+       * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
+
+2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
+       alloca.
+       (check_some_aliasing): Likewise.
+       * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
+       (gfc_conv_intrinsic_int): Likewise.
+       (gfc_conv_intrinsic_lib_function): Likewise.
+       (gfc_conv_intrinsic_cmplx): Likewise.
+       (gfc_conv_intrinsic_ctime): Likewise.
+       (gfc_conv_intrinsic_fdate): Likewise.
+       (gfc_conv_intrinsic_ttynam): Likewise.
+       (gfc_conv_intrinsic_minmax): Likewise.
+       (gfc_conv_intrinsic_minmax_char): Likewise.
+       (gfc_conv_intrinsic_ishftc): Likewise.
+       (gfc_conv_intrinsic_index_scan_verify): Likewise.
+       (gfc_conv_intrinsic_merge): Likewise.
+       (gfc_conv_intrinsic_trim): Likewise.
+       * trans.c (gfc_trans_runtime_error_vararg): Likewise.
+
+2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * dependency.c (check_section_vs_section):  Handle cases where
+       the start expression coincides with the lower or upper
+       bound of the array.
+
+2010-08-04  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/42207
+       PR fortran/44064
+       PR fortran/44065
+       * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
+       container types. Do not artificially increase refs. Commit symbols one
+       by one.
+       * interface.c (compare_parameter): Make sure vtabs are present before
+       generating module variables.
+       * resolve.c (resolve_allocate_expr): Ditto.
+
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45183
+       PR fortran/44857
+       * resolve.c (resolve_structure_cons): Fix
+       freeing of charlen.
+
+2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * symbol.c (changed_syms): Made static again.
+       (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
+       Changed conditional internal error into assert.
+       Rename function to ...
+       (gfc_enforce_clean_symbol_state): ... this.
+       * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
+       Rename the former to the latter.
+       * parse.c (decode_statement, decode_omp_directive,
+       decode_gcc_attribute): Update callers accordingly. Don't conditionalize
+       on GFC_DEBUG.
+       (changed_syms): Remove declaration.
+       (next_statement): Use gfc_enforce_clean_symbol_state.
+
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/44857
+       * resolve.c (resolve_structure_cons): Fix handling of
+       initialization structure constructors with character
+       elements of the wrong length.
+       * array.c (gfc_check_iter_variable): Add NULL check.
+       (gfc_resolve_character_array_constructor): Also truncate
+       character length.
+
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-io.c (gfc_build_io_library_fndecls): Fix return
+       value of some libgfortran functions.
+
+2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * dependency.c (gfc_deb_compare_expr):  Remove any integer
+       conversion functions to larger types from both arguments.
+       Remove handling these functions futher down.
+
+2010-08-03  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44584
+       PR fortran/45161
+       * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
+       * resolve.c (resolve_tb_generic_targets): Check for errors.
+
+2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
+       can be reversed.
+
+2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/36854
+       * dependency.h:  Add prototype for gfc_are_identical_variables.
+       * frontend-passes.c:  Include depencency.h.
+       (optimimize_equality):  Use gfc_are_identical_variables.
+       * dependency.c (identical_array_ref): New function.
+       (gfc_are_identical_variables):  New function.
+       (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
+       * dependency.c (gfc_check_section_vs_section).  Rename gfc_
+       prefix from statc function.
+       (check_section_vs_section): Change arguments to gfc_array_ref,
+       adjust function body accordingly.
+
+2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
+           Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       PR fortran/45151
+       * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
+       * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
+       gfc_copy_formal_args, gfc_copy_formal_args_intr,
+       gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
+       * parse.c (parse_derived_contains, parse_spec, parse_progunit): 
+       Call reject_statement in case of error. 
+       (match_deferred_characteritics): Call gfc_undo_symbols in case match
+       fails.
+
+2010-08-01  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44912
+       * class.c (gfc_build_class_symbol): Make '$vptr' component private.
+       (gfc_find_derived_vtab): Make vtabs and vtypes public.
+       * module.c (read_module): When reading module files, always import
+       vtab and vtype symbols.
+
+2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * symbol.c (changed_syms): Made non-static.
+       * parse.c (changed_syms): Declare new external. 
+       (next_statement): Assert changed_syms is NULL at the beginning.
+
+2010-07-30  Janus Weil  <janus@gcc.gnu.org>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/44929
+       * match.c (match_type_spec): Try to parse derived types before
+       intrinsic types.
+
+2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * gfortran.h (gfc_release_symbol): New prototype.
+       * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
+       (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
+       Use gfc_release_symbol.
+       * parse.c (gfc_fixup_sibling_symbols): Ditto.
+       * resolve.c (resolve_symbol): Ditto.
+
+2010-07-29  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45087
+       PR fortran/45125
+       * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
+       external procedure declarations in modules.
+       (gfc_get_symbol_decl): Modify assert.
+
+2010-07-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44962
+       * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
+
+2010-07-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45004
+       * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
+       (gfc_trans_class_assign): Modified prototype.
+       * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
+       * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
+       (gfc_trans_class_assign): ... here. Modified actual arguments.
+       * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
+       handle the MOVE_ALLOC intrinsic with scalar and class arguments.
+       * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
+
+2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * class.c (gfc_find_derived_vtab): Accept or discard newly created
+       symbols before returning.
+
+2010-07-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (cpp): Remove Joined and Separate markers.
+       (cpp=): New internal option.
+       * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
+       * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
+       OPT_cpp.
+
 2010-07-29  Daniel Kraft  <d@domob.eu>
 
        PR fortran/45117