X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=8e17f058cbc8660d8d6acda640331210e38d6758;hb=6c07e6d85d043ec173479ec0096fabb8832a4299;hp=4bddcb43aaa7be8136da97ca2d98031bc6ff9e63;hpb=af86198698988e4837df6f8e16ff21a2944ae975;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4bddcb43aaa..8e17f058cbc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,801 @@ +2010-09-09 Tobias Burnus + + PR fortran/43665 + * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL, + STAT): Show also syntax for the function version. + * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent, + add_sym_3s_intent): Remove function. + (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent + as argument. + (add_sym_2_intent): New function. + (add_functions): Set intent for functions which modify + the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change + argument name of hostnm from "a" to "c" + (add_subroutines): Change add_sym_*s_intent to + add_sym_*s and add intent to the add_sym_*s calls. + +2010-09-08 Francois-Xavier Coudert + + PR fortran/38282 + * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R}, + MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}. + * gfortran.h: Define ISYM values for above intrinsics. + * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift, + gfc_check_mask, gfc_check_merge_bits, gfc_check_shift, + gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble, + gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr, + gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr, + gfc_simplify_merge_bits, gfc_simplify_rshift, + gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr, + gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits, + gfc_resolve_shift): New prototypes. + * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask, + gfc_resolve_merge_bits, gfc_resolve_shift): New functions. + * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift, + gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New + functions. + * trans-intrinsic.c (gfc_conv_intrinsic_dshift, + gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift, + gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New + functions. + (gfc_conv_intrinsic_function): Call above static functions. + * intrinsic.texi: Document new intrinsics. + * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble, + gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr, + gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr, + gfc_simplify_merge_bits, gfc_simplify_rshift, + gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr): + New functions. + +2010-09-08 Jakub Jelinek + + * frontend-passes.c (optimize_code_node): Walk block chain by default. + + PR fortran/45597 + * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code + instead of code->block. + + PR fortran/45595 + * openmp.c (resolve_omp_do): Report not enough do loops for + collapse even if block->next is NULL. + +2010-09-07 Thomas Koenig + + PR fortran/45576 + * dependency.c (gfc_deb_compare_expr): Take missing optional + arguments into account. + +2010-09-08 Francois-Xavier Coudert + + * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove. + * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove. + (gfc_build_intrinsic_function_decls): Don't build the + gfor_fndecl_clz128 and gfor_fndecl_ctz128. + * trans-intrinsic.c (gfc_conv_intrinsic_leadz, + gfc_conv_intrinsic_trailz): Generate inline arithmetic instead + of calling clz128/ctz128 library functions. + +2010-09-07 Jan Hubicka + + * trans-expr.c (gfc_conv_initializer): Set STATIC flags for + initializers. + +2010-09-07 Tobias Burnus + + PR fortran/45583 + * intrinsic.texi (COS): Remove superfluous "n". + +2010-09-07 Tobias Burnus + + PR fortran/45186 + * trans-array.c (gfc_conv_descriptor_data_get, + gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr, + gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype, + gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride, + gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound, + gfc_conv_shift_descriptor_lbound, + gfc_set_loop_bounds_from_array_spec, + gfc_trans_allocate_array_storage, gfc_trans_create_temp_array, + gfc_conv_array_transpose, gfc_get_iteration_count, + gfc_grow_array, gfc_trans_array_ctor_element, + gfc_trans_array_constructor_subarray, + gfc_trans_array_constructor_value, + constant_array_constructor_loop_size, gfc_trans_array_constructor, + gfc_set_vector_loop_bounds, gfc_trans_array_bound_check, + gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, + gfc_conv_array_ref, gfc_trans_preloop_setup, + gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride, + gfc_conv_loop_setup, gfc_conv_array_extent_dim, + gfc_conv_descriptor_size, gfc_array_init_size, + gfc_array_allocate, gfc_array_deallocate, + gfc_trans_array_bounds, gfc_trans_auto_array_allocation, + gfc_trans_dummy_array_bias, gfc_get_dataptr_offset, + get_array_charlen, gfc_conv_expr_descriptor, + array_parameter_size, gfc_conv_array_parameter, + gfc_trans_dealloc_allocated, get_full_array_size, + duplicate_allocatable, + structure_alloc_comps): Change fold_build[0-9] to + fold_build[0-9]_loc. + (duplicate_allocatable, structure_alloc_comps, + gfc_duplicate_allocatable): Add space after function name. + +2010-09-07 Mikael Morin + + * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while + checking string length value. + * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using + gfc_charlen_type_node type. + + PR fortran/45564 + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string + length to gfc_charlen_type_node. + +2010-09-06 Thomas Koenig + + PR fortran/36931 + * frontend-passes.c (optimize_binop_array_assignment): New + function. + (optimize_assignment): Call it. + +2010-09-06 Thomas Koenig + + PR fortran/34145 + * trans-expr.c (gfc_conv_substring): If start and end + of the string reference are equal, set the length to one. + +2010-09-06 Tobias Burnus + + PR fortran/45560 + * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout. + +2010-09-06 Tobias Burnus + + PR fortran/45560 + * dump-parse-tree.c (gfc_debug_expr): New function. + +2010-09-06 Tobias Burnus + + 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 + + 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 + + PR fortran/45530 + * resolve.c (resolve_fl_namelist): Change constraint checking + order to prevent endless loop. + +2010-09-04 Janus Weil + + 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 + + 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 + + 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 + + PR fortran/34162 + * resolve.c (resolve_actual_arglist): Allow internal procedure + as actual argument with Fortran 2008. + +2010-09-03 Daniel Kraft + + 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 + + * 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 + + 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 + + PR fortran/44541 + * resolve.c (resolve_symbol): Correct check for attributes of CLASS + variable. + +2010-09-02 Tobias Burnus + + 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 + + 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 + + * gfortran.texi (preprocessing): Update URL to COCO. + +2010-09-01 Francois-Xavier Coudert + + * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize + array quad_decls. Remove unnecessary assignment. + +2010-09-01 Francois-Xavier Coudert + + * 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 + + * 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 + + 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 + + PR fortran/45456 + * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs. + +2010-08-30 Francois-Xavier Coudert + + * Make-lang.in: Add frontend-passes.o dependencies. + +2010-08-29 Janus Weil + + 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 + + PR fortran/45439 + * match.c (gfc_match_select_type): Give the associate-name the + FL_VARIABLE attribute. + +2010-08-28 Steven G. Kargl + + * simplify.c (gfc_simplify_bessel_n2): Fix indention + and argument type. + +2010-08-28 Francois-Xavier Coudert + + PR fortran/45436 + * trans-types.c (gfc_init_kinds): Disable TFmode. + +2010-08-27 Janus Weil + + PR fortran/45432 + * match.c (gfc_match_allocate): Avoid double free on error. + +2010-08-27 Francois-Xavier Coudert + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + PR fortran/45380 + * frontend-passes.c (optimize_equality): Don't optimize array equality + +2010-08-23 Janus Weil + + 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 + + * 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 + + 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 + + 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 + + * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver. + +2010-08-20 Joseph Myers + + * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in + comment, not -lg2c. + +2010-08-20 Nathan Froyd + + * trans-openmp.c: Use FOR_EACH_VEC_ELT. + +2010-08-19 Daniel Kraft + + 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 + + * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo. + * * simplify.c (gfc_simplify_bessel_yn): Change recursive + into recurrence. + +2010-08-19 Tobias Burnus + + 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 + + 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 + + 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 + + PR fortran/45295 + * intrinsic.texi (selected_char_kind): Document ISO_10646 + support. + +2010-08-17 Jakub Jelinek + + 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 + + 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 + + * 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 + + * lang.opt (MDX, MMDX): Mark RejectDriver. + +2010-08-15 Janus Weil + + * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have + vtabs for generics any more). + +2010-08-15 Daniel Kraft + + 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 + + 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 * trans-expr.c (gfc_conv_expr_present): Regard nullified