2008-03-29 Tobias Schlüter PR fortran/38507 * gfortran.h (gfc_st_label): Fix comment. (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block. * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and END SELECT with labels. (check_do_closure): Fix formatting. (parse_do_block): Fix typo in error message. * resolve.c (code_stack): Remove tail member. Update comment to new use of reachable_labels. (reachable_labels): Rename to ... (find_reachable_labels): ... this. Overhaul. Update preceding comment. (resolve_branch): Fix comment preceding function. Rewrite. (resolve_code): Update call to find_reachable_labels. Add code to deal with EXEC_END_BLOCK. * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK. Add 2009 to copyright years. * trans.c (gfc_trans_code): Likewise on both counts. 2009-03-28 Tobias Burnus PR fortran/34656 * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add GFC_RTCHECK_DO support. * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO. * invoke.texi (-fcheck): Document "do" option. 2009-03-28 Paul Thomas PR fortran/38538 * trans-array.c (get_elemental_fcn_charlen): Remove. (get_array_charlen): New function to replace previous. 2009-03-28 Paul Thomas PR fortran/38765 * parse.c (parse_derived): Do not break on finding pointer, allocatable or private components. 2009-03-28 Tobias Burnus PR fortran/32626 * option.c (gfc_handle_runtime_check_option): Enable recursion check. * trans-decl.c (gfc_generate_function_code): Add recursion check. * invoke.texi (-fcheck): Add recursive option. 2009-03-28 Tobias Burnus PR fortran/38432 * resolve.c (gfc_resolve_iterator): Add zero-loop warning. 2009-03-28 Francois-Xavier Coudert Paul Thomas Tobias Burnus * gfortran.h (gfc_option_t): Add rtcheck. * lang.opt: New option -fcheck. * libgfortran.h: Add GFC_RTCHECK_* constants. * invoke.texi: Document -fcheck. * options.c (gfc_handle_runtime_check_option): New function. (gfc_init_options,gfc_post_options,gfc_handle_option): Add -fcheck option. 2009-03-27 Richard Guenther * trans-array.c (gfc_conv_descriptor_data_addr): Use gfc_build_addr_expr instead of build_fold_addr_expr. (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value, gfc_trans_constant_array_constructor, gfc_conv_array_data, gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise. * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable, gfc_conv_function_val, gfc_conv_operator_assign, gfc_conv_subref_array_arg, gfc_conv_function_call, gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise. * trans-intrinsic.c (gfc_conv_intrinsic_exponent, gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent, gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer, gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise. * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref, gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close, build_filepos, gfc_trans_inquire, gfc_trans_wait, nml_get_addr_expr, transfer_namelist_element, build_dt, gfc_trans_dt_end, transfer_array_component, transfer_expr, transfer_array_desc, gfc_trans_transfer): Likewise. * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise. * trans.c (gfc_build_addr_expr): Mark the base of the address TREE_ADDRESSABLE. 2009-03-27 Tobias Burnus * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN. (gfc_expr): Add is_snan. * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN. (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree. * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype. * resolve.c (build_default_init_expr): Update call. * target-memory.c (encode_float): Ditto. * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod, 2009-03-18 Ralf Wildenhues * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp, and -fpreprocessed. 2009-03-06 Alexandre Oliva * simplify.c (gfc_simplify_transfer): Zero-initialize the buffer. 2009-02-27 Tobias Burnus PR fortran/39309 * module.c (read_md5_from_module_file): Add missing quote. 2009-02-27 Tobias Burnus PR fortran/39309 * module.c (read_md5_from_module_file): Include mod version in had-changed test. 2009-02-26 Paul Thomas PR fortran/39295 * interface.c (compare_type_rank_if): Return 1 if the symbols are the same and deal with external procedures where one is identified to be a function or subroutine by usage but the other is not. 2009-02-26 Paul Thomas PR fortran/39292 * trans-array.c (gfc_conv_array_initializer): Convert all expressions rather than ICEing. 2009-02-21 Thomas Koenig PR fortran/38914 * array.c (ref_dimen_size): Rename to gfc_ref_dimen_size, make global. Change function name in error messages. (ref_size): Change ref_dimen_size to gfc_ref_dimen_size. (gfc_array_ref_shape): Likewise. * gfortran.h: Add prototype for gfc_ref_dimen_size. * simplify.c (simplify_bound_dim): Add ref argument. If the reference isn't a full array, return one for the lower bound and the extent for the upper bound. (simplify_bound): For array sections, take as from the argument. Add reference to all to simplify_bound_dim. 2009-02-19 Daniel Franke * scanner.c (load_line): At end of line, skip '\r' without setting the truncation flag. 2009-02-18 Daniel Kraft * gfortran.texi: New chapter about compiler characteristics. (Compiler Characteristics): Document KIND type parameters here. 2009-02-18 Tobias Burnus * intrinsic.texi (MALLOC): Make example more portable. 2009-02-13 Mikael Morin PR fortran/38259 * module.c (gfc_dump_module,gfc_use_module): Add module version number. 2009-02-13 Paul Thomas PR fortran/36703 PR fortran/36528 * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer function references to ensure that a valid expression is used. (gfc_conv_function_call): Pass Cray pointers to procedures. 2009-02-03 Jakub Jelinek * gfortranspec.c (lang_specific_driver): Update copyright notice dates. 2009-01-28 Paul Thomas PR fortran/38852 PR fortran/39006 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array descriptor ubound for UBOUND, when the array lbound == 1. 2009-01-27 Daniel Kraft PR fortran/38883 * trans-stmt.c (gfc_conv_elemental_dependencies): Create temporary for the real type needed to make it work for subcomponent-references. 2009-01-21 Daniel Kraft * trans-stmt.c (gfc_conv_elemental_dependencies): Cleaned up comment. 2009-01-20 Paul Thomas PR fortran/38907 * resolve.c (check_host_association): Remove the matching to correct an incorrect host association and use manipulation of the expression instead. 2009-01-20 Tobias Burnus * invoke.texi (RANGE): RANGE also takes INTEGER arguments. 2009-01-19 Mikael Morin PR fortran/38859 * simplify.c (simplify_bound): Don't use array specification if variable or component has subsequent references. 2009-01-17 Paul Thomas PR fortran/38657 * module.c (write_common_0): Add argument 'this_module' and check that non-use associated common blocks are written first. (write_common): Call write_common_0 twice, once with true and then with false. 2009-01-17 Paul Thomas PR fortran/34955 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has been absorbed into gfc_conv_intrinsic_transfer. All references to it in trans-intrinsic.c have been changed accordingly. PR fixed by using a temporary for scalar character transfer, when the source is shorter than the destination. 2009-01-17 Paul Thomas PR fortran/38657 * module.c (write_common_0): Revert patch of 2009-01-05. 2009-01-16 Janus Weil PR fortran/38152 * expr.c (gfc_check_pointer_assign): Allow use-associated procedure pointers as lvalue. * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable): Enable procedure pointers as module variables. 2009-01-14 Steven G. Kargl * ChangeLog-2007: Clean out svn merge droppings. 2009-01-10 Paul Thomas PR fortran/38763 * target-memory.c (encode_derived): Encode NULL. 2009-01-10 Paul Thomas PR fortran/38765 * resolve.c (check_host_association): Use the symtree name to search for a potential contained procedure, since this is the name by which it would be referenced. 2009-01-06 Thomas Koenig PR fortran/38220 * interface.c (gfc_procedure_use): Don't warn about functions from ISO_C_BINDING. * symbol.c (generate_isocbinding_symbol): Mark c_loc and c_funloc as pure. 2009-01-05 Paul Thomas PR fortran/38657 * module.c (write_common_0): Use the name of the symtree rather than the common block, to determine if the common has been written. 2009-01-05 Daniel Franke PR fortran/37159 * check.c (gfc_check_random_seed): Added size check for GET dummy argument, reworded error messages to follow common pattern. 2009-01-05 Thomas Koenig PR fortran/38672 * trans-types.c (gfc_get_derived_type): Check for the presence of derived->ns->proc_name before accessing derived->ns->proc_name->attr.flavor . * resolve.c (resolve_symbol): Likewise. 2009-01-05 Paul Thomas PR fortran/38665 * gfortran.h : Add bit to gfc_expr 'user_operator' * interface.c (gfc_extend_expr): Set the above if the operator is substituted by a function. * resolve.c (check_host_association): Return if above is set. 2009-01-04 Mikael Morin PR fortran/35681 * ChangeLog-2008: Fix function name. PR fortran/38487 * dependency.c (gfc_check_argument_var_dependency): Move the check for pointerness inside the if block so that it doesn't affect the return value. PR fortran/38669 * trans-stmt.c (gfc_trans_call): Add the dependency code after the loop bounds calculation one. 2009-01-04 Daniel Franke * intrinsic.c (do_simplify): Removed already implemented TODO. 2009-01-04 Daniel Franke PR fortran/38718 * simplify.c (gfc_simplify_merge): New. * intrinsic.h (gfc_simplify_merge): New prototype. * intrinsic.c (add_functions): Added simplification for MERGE. 2009-01-04 Mikael Morin PR fortran/38536 * gfortran.h (gfc_is_data_pointer): Added prototype * resolve.c (gfc_iso_c_func_interface): Use gfc_is_data_pointer to test for pointer attribute. * dependency.c (gfc_is_data_pointer): Support pointer-returning functions. 2009-01-03 Daniel Franke * symbol.c (save_symbol): Don't SAVE function results. 2009-01-03 Paul Thomas PR fortran/38594 * resolve.c (resolve_call): When searching for proper host association, use symtree rather than symbol. For everything except generic subroutines, substitute the symtree in the call rather than the symbol.