X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=24e20843acbe9b3624abed9b55ea32cdf512e129;hp=30a9415555c8d3d236926a7f327bfb77496184cb;hb=c0c208f9882698d7db1dbfcb4f075f1a8ca9c427;hpb=459a1bdc1386060a2ca9d65c7f03c401001d1ee7 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 30a9415555c..24e20843acb 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,8 +1,284 @@ +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 + 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 + + * interface.c (compare_pointer, ): Allow passing TARGETs to pointers + dummies with intent(in). + +2010-08-15 Daniel Kraft + + 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 + + * 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 + + * 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 + + 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 + + * 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 + + 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 + + * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH. + +2010-08-07 Nathan Froyd + + * 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 + + 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 + + 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 + + PR fortran/45183 + PR fortran/44857 + * resolve.c (resolve_structure_cons): Fix + freeing of charlen. + +2010-08-04 Mikael Morin + + 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 PR fortran/44857 * resolve.c (resolve_structure_cons): Fix handling of - initialization structcture constructors with character + 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