X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=43360d8910893435464cfdb0f75f99028df76899;hp=8e17f058cbc8660d8d6acda640331210e38d6758;hb=79dda023e156a636f6aca7f72c92dfd987504559;hpb=6c07e6d85d043ec173479ec0096fabb8832a4299 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8e17f058cbc..43360d89108 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,706 @@ +2010-10-18 Jerry DeLisle + + * gfortran.h: Remove definition of bt enumerator. + * libgfortran.h: Add bt enumerator type alighned with defintion. + Remove the dtype enumerator, no longer used. + previously given in libgfortran/io.h + * trans-types.c: Use new bt enumerator. + * trans-io.c: Likewise. + +2010-10-16 Thomas Koenig + + * trans-io.c (gfc_build_io_library_fndecls): + Array descriptor arguments to transfer_array can be + dereferenced recursively. + +2010-10-16 Thomas Koenig + + PR fortran/20165 + PR fortran/31593 + PR fortran/43665 + * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE, + IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE, + IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE, + IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE. + (gfc_build_io_library_fndecls): Add corresponding function + decls. + (transfer_expr): If the current transfer is a READ, use + the iocall with the original version, otherwise the version + with _WRITE. + (transfer_array_desc): Likewise. + +2010-10-15 Tobias Burnus + + PR fortran/45186 + * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes. + (gfc_trans_runtime_error_vararg): Remove prototype. + * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions. + (gfc_add_modify, gfc_evaluate_now): Use them. + (trans_runtime_error_vararg): Renamed from + gfc_trans_runtime_error_vararg, made static and use locus. + (gfc_trans_runtime_error): Use it. + (gfc_trans_runtime_check): Ditto and make use of locus. + * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do, + gfc_trans_do, gfc_trans_do_while): Improve line number + associated with generated expressions. + +2010-10-12 Daniel Kraft + + PR fortran/38936 + * parse.c (parse_associate): Set typespec of associate-name if that of + the target is already available. + +2010-10-10 Janus Weil + + PR fortran/45961 + * resolve.c (resolve_typebound_function): Bugfix for type-bound + operators. + +2010-10-09 Thomas Koenig + + * frontend-passes.c: Include opts.h. + (optimize_comparison): Renamed from optimize_equality. + Change second argument to operation to be compared. + Use flag_finite_math_only to avoid comparing REAL and + COMPLEX only when NANs are honored. Simplify comparing + of string concatenations where left or right operands are + equal. Simplify all comparison operations, based on the result + of gfc_dep_compare_expr. + * dependency.c: Include arith.h. + (gfc_are_identical_variables): Volatile variables should not + compare equal to themselves. + (gfc_dep_compare_expr): Handle string constants and string + concatenations. + +2010-10-08 Joseph Myers + + * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define. + * gfortran.h (gfc_init_options_struct): Declare. + * options.c (gfc_init_options_struct): New. Split out from + gfc_init_options. + +2010-10-07 Janus Weil + + PR fortran/45933 + * resolve.c (resolve_typebound_function): Use correct declared type + for type-bound operators. + +2010-10-07 Mikael Morin + + PR fortran/45916 + Revert revision 165026: + 2010-10-06 Mikael Morin + + * decl.c (match_procedure_in_type): Assertify if conditions. + +2010-10-06 Jerry DeLisle + + PR fortran/45889 + * resolve.c (resolve_transfer): Use expression inside parenthesis to + find acutal component to be transgferred. + +2010-10-06 Mikael Morin + + * trans-stmt.c (gfc_trans_allocate): free lhs expr. + +2010-10-06 Mikael Morin + + * trans-array.c (gfc_free_ss_chain): Made non-static. + * trans-array.h (gfc_free_ss_chain): New prototype. + * trans-stmt.c (gfc_trans_where_2): Free ss chains. + +2010-10-06 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's + subcomponents. + +2010-10-06 Mikael Morin + + * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end. + +2010-10-06 Mikael Morin + + * trans-expr.c (get_proc_ptr_comp): Restore initial expression type + before calling gfc_free_expr. + +2010-10-06 Mikael Morin + + * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to + gfc_advance_se_ss_chain. + * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call, + gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove + calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. + * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto. + +2010-10-06 Mikael Morin + + * trans.c (gfc_restore_backend_locus): New function. + (gfc_get_backend_locus): Renamed to ... + (gfc_save_backend_locus): ... this. + * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus, + gfc_save_backend_locus): Same. + * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias, + gfc_trans_deferred_array): Rename gfc_get_backend_locus to + gfc_save_backend_locus. + (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the + end. + (gfc_trans_g77_array, gfc_trans_deferred_array): Use + gfc_restore_backend_locus instead of gfc_set_backend_locus. + (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early + return. + * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks, + gfc_trans_deferred_vars): + Rename gfc_get_backend_locus to gfc_save_backend_locus. + Use gfc_restore_backend_locus insted of gfc_set_backend_locus. + +2010-10-06 Mikael Morin + + * trans-array.c (gfc_build_constant_array_constructor): Free array + spec when done. + +2010-10-06 Mikael Morin + + * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list + before overwriting it. + +2010-10-06 Mikael Morin + + * array.c (gfc_match_array_spec): Don't re-initialize cleared struct. + * symbol.c (gen_shape_param): Ditto. + +2010-10-06 Mikael Morin + + * symbol.c (free_entry_list): New function. + (gfc_free_namespace): Free list of entries. + +2010-10-06 Mikael Morin + + * symbol.c (free_components): Free list of formal args and formal + namespace. + +2010-10-06 Mikael Morin + + * simplify.c (gfc_simplify_size): Clear temporary mpz int before + returning. + +2010-10-06 Mikael Morin + + * resolve.c (add_dt_to_dt_list): Remove unneeded if. + +2010-10-06 Mikael Morin + + * resolve.c (check_typebound_baseobject): Free local expr before + returning. + +2010-10-06 Mikael Morin + + * primary.c (gfc_match_structure_constructor): Invert the assert logic. + +2010-10-06 Mikael Morin + + * primary.c (gfc_free_structure_ctor_component): Also free the + component structure itself. + +2010-10-06 Mikael Morin + + * module.c (gfc_use_module): Free atom_string when done with it. + +2010-10-06 Mikael Morin + + * module.c (read_module): Remove useless string duplication. + +2010-10-06 Mikael Morin + + * gfortranspec.c (append_arg): Remove commented code. + +2010-10-06 Mikael Morin + + * decl.c (match_procedure_in_type): Assertify if conditions. + +2010-10-06 Mikael Morin + + * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if + preprocessing is disabled. + +2010-10-06 Jakub Jelinek + + PR middle-end/45838 + * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST, + ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define. + (gfc_define_builtin): Change last argument to int bitmask from bool, + control addition of TREE_NOTHROW and leaf attribute as well. + (DO_DEFINE_MATH_BUILTIN): Adjust callers. + (gfc_init_builtin_functions): Likewise. Remove + ATTR_{,CONST_}NOTHROW_LIST enum. + +2010-10-04 Andi Kleen + + * Make-lang.in (gfortran, f951): Add + to build rule. + +2010-10-04 Richard Guenther + + * f95-lang.c (current_translation_unit): New global variable. + (gfc_create_decls): Build a translation-unit decl. + (pushdecl): In the global binding-level use the + translation-unit decl as DECL_CONTEXT. + * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P. + (build_function_decl): Likewise. Delay setting the assembler + name, leave setting of DECL_CONTEXT to pushdecl. + (trans_function_start): Use DECL_FILE_SCOPE_P. + (gfc_create_module_variable): Likewise. Remove questionable + asserts. + * trans.c (gfc_generate_module_code): Likewise. + +2010-10-03 Francois-Xavier Coudert + + * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c + instead of duplicating code. + * Make-lang.in: Add dependency on cppbuiltin.h. Don't define + BASEVER. + +2010-10-02 Janus Weil + + PR fortran/45748 + * resolve.c (resolve_formal_arglist): Avoid setting default type for + formal arguments of intrinsic procedures. + +2010-09-30 Janus Weil + + PR fortran/45828 + * resolve.c (resolve_allocate_expr): Do not use + 'gfc_has_default_initializer'. + +2010-09-30 Tobias Burnus + + * gfortran.tex (Fortran 2008 status): Update list of + implemented features. + +2010-09-29 Joseph Myers + + * lang.opt: Don't use VarExists. + +2010-09-29 Joseph Myers + + * cpp.c (cpp_define_builtins): Update names of gfc_option_t + members. + (gfc_cpp_post_options): Update names of cpp_options members. + (cb_cpp_error): Update names of diagnostic_context members. + * f95-lang.c (gfc_init_builtin_functions): Update names of + gfc_option_t members. + * gfortran.h (gfc_option_t): Rename warn_conversion and + flag_openmp. + * intrinsic.c (gfc_convert_type_warn): Update names of + gfc_option_t members. + * options.c (gfc_init_options, gfc_post_options, set_Wall, + gfc_handle_option): Update names of gfc_option_t members. + * parse.c (next_free, next_fixed): Update names of gfc_option_t + members. + * scanner.c (pedantic): Remove extern declaration. + (skip_free_comments, skip_fixed_comments, include_line): Update + names of gfc_option_t members. + * trans-decl.c (gfc_generate_function_code): Update names of + gfc_option_t members. + +2010-09-28 Tobias Burnus + + PR fortran/40569 + PR fortran/40568 + * intrinsic.c (add_functions): Make compiler_version and + compiler_options CLASS_INQUIRY. + * gfortran.h (gfc_get_option_string): New prototype. + * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS): + Add documentation. + (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING. + (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS. + (ISO_C_BINDING): Refer to C_SIZEOF. + * options.c (gfc_get_option_string): New function. + * simplify.c (gfc_simplify_compiler_options): Use it. + (gfc_simplify_compiler_version): Include compiler name. + +2010-09-28 Jan Hubicka + + * f95-lang.c (gfc_define_builtin): Make leaf. + (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST + and ATTR_NOTHROW_LEAF_LIST. + (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST. + (DEF_GOMP_BUILTIN): Likewise. + +2010-09-28 Tobias Burnus + + PR fortran/45756 + * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of + module parameters. + +2010-09-27 Tobias Burnus + + PR fortran/40569 + PR fortran/40568 + * intrinsic.h (gfc_simplify_compiler_options, + gfc_simplify_compiler_version): New prototypes. + * intrinsic.c (gfc_intrinsic_function_by_id, + make_from_module): New functions. + (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic, + gfc_specific_intrinsic): Don't return module intrinsics. + (add_functions): Add compiler_options, compiler_version. + (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID. + * symbol.c (std_for_isocbinding_symbol): Add version check for + NAMED_FUNCTIONS. + * iso-fortran-env.def: Add compiler_options, compiler_version. + * iso-c-binding.def: Add c_sizeof. + * gfortran.h (gfc_intrinsic_sym): Add from_module:1. + (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS. + (gfc_intrinsic_function_by_id): New prototype. + * module.c (create_intrinsic_function): New function. + (import_iso_c_binding_module, use_iso_fortran_env_module): Use it. + * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS. + * resolve.c (resolve_intrinsic): Try also to resolve intrinsics + by ISYM ID. + * simplify.c (gfc_simplify_compiler_options, + gfc_simplify_compiler_version): New functions. + +2010-09-26 Daniel Kraft + + PR fortran/45783 + PR fortran/45795 + * resolve.c (resolve_select_type): Clarify code. + (resolve_assoc_var): Only set typespec if it is currently unknown. + +2010-09-26 Jerry DeLisle + + PR fortran/45793 + * module.c (create_int_parameter_array): Set the array value shape. + +2010-09-25 Tobias Burnus + + * gfortran.texi: Re-add accidently removed \input line. + +2010-09-25 Daniel Kraft + + PR fortran/45776 + * gfortran.h (struct gfc_dt): New member `dt_io_kind'. + * io.c (resolve_tag): F2008 check for NEWUNIT and variable + definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG. + (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and + `extra_comma' with changed semantics. + (gfc_resolve_dt): Check variable definitions. + (match_io_element): Remove INTENT and PURE checks here and + initialize code->ext.dt member. + (match_io): Set dt->dt_io_kind. + (gfc_resolve_inquire): Check variable definition for all tags + except UNIT, FILE and ID. + * resolve.c (resolve_transfer): Variable definition check. + +2010-09-25 Tobias Burnus + + * interface.c (gfc_match_end_interface): Constify char pointer + to fix warning. + +2010-09-24 Steven G. Kargl < kargl@gcc.gnu.org> + + * interface.c (gfc_match_end_interface): Deal with user defined + operators that overload rational operators and C1202. + +2010-09-24 Tobias Burnus + + * gfortran.texi: Add second space after end-of-sentence period; + change / to /@/ to allow hyphenation of URLs. + (Standards): Remove duplicated OpenMP, update wording given that + Fortran 2008 now released. + (Fortran 2008 status): Update and add list of implemented features. + +2010-09-24 Tobias Burnus + + PR fortran/40571 + * iso-fortran-env.def: Add NAMED_KINDARRAY with + character_kinds, integer_kinds, logical_kinds and + real_kinds. + * gfortran.h: Add them to iso_fortran_env_symbol. + * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to + LIBERROR_INQUIRE_INTERNAL_UNIT and move it from + libgfortran_stat_codes to libgfortran_error_codes. + * module.c (create_int_parameter_array): New function. + (use_iso_fortran_env_module): Use it for + NAMED_KINDARRAY of iso-fortran-env.def. + * trans-decl.c (gfc_get_symbol_decl): Parameter + arrays of intrinsics modules become local static variables. + * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds, + integer_kinds, logical_kinds and real_kinds. + +2010-09-23 Thomas Koenig + + PR fortran/45744 + * frontend-passes.c (optimize_binop_array_assignment): + Only re-use lhs as intermediate storage if kind and type + parameters match. + +2010-09-23 Mikael Morin + + PR fortran/45745 + PR fortran/45648 + * trans-array.c (gfc_conv_expr_descriptor): Handle + ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case. + +2010-09-23 Tobias Burnus + + * intrinsic.texi (OpenMP modules): Add named constants of + OMP_LIB. + +2010-09-23 Daniel Kraft + + PR fortran/38936 + PR fortran/44044 + PR fortran/45474 + * gfortran.h (gfc_check_vardef_context): New method. + (struct symbol_attribute): New flag `select_type_temporary'. + * primary.c (gfc_variable_attr): Clarify initialization of ref. + (match_variable): Remove PROTECTED check and assignment check + for PARAMETERs (this is now done later). + * match.c (gfc_match_iterator): Remove INTENT(IN) check. + (gfc_match_associate): Defer initialization of newAssoc->variable. + (gfc_match_nullify): Remove PURE definability check. + (select_type_set_tmp): Set new `select_type_temporary' flag. + * expr.c (gfc_check_assign): Remove INTENT(IN) check here. + (gfc_check_pointer_assign): Ditto (and other checks removed). + (gfc_check_vardef_context): New method. + * interface.c (compare_parameter_protected): Removed. + (compare_actual_formal): Use `gfc_check_vardef_context' for checks + related to INTENT([IN]OUT) arguments. + * intrinsic.c (check_arglist): Check INTENT for intrinsics. + * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'. + (remove_last_array_ref): New method. + (resolve_deallocate_expr), (resolve_allocate_expr): Ditto. + (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG). + (resolve_assoc_var): Remove checks for definability here. + (resolve_select_type): Handle resolving of code->block here. + (resolve_ordinary_assign): Remove PURE check. + (resolve_code): Do not resolve code->blocks for SELECT TYPE here. + Use `gfc_check_vardef_context' for assignments and pointer-assignments. + +2010-08-22 Ralf Wildenhues + + * gfortran.texi (Argument list functions): Allow URL to wrap. + * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX) + (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE) + (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of + code markups in the text. + * invoke.texi (Fortran Dialect Options) + (Error and Warning Options, Directory Options, Code Gen Options): + Likewise. Remove @code inside @smallexample. + +2010-09-22 Joseph Myers + + * gfortranspec.c (lang_specific_driver): Handle OPT__version and + OPT__help instead of OPT_fversion and OPT_fhelp. + * lang.opt (-all-warnings, -assert, -assert=, -comments, + -comments-in-macros, -define-macro, -define-macro=, -dependencies, + -dump, -dump=, -include-barrier, -include-directory, + -include-directory=, -include-directory-after, + -include-directory-after=, -include-prefix, -include-prefix=, + -no-line-commands, -no-standard-includes, -output, -output=, + -preprocess, -print-missing-file-dependencies, -trace-includes, + -undefine-macro, -undefine-macro=, -user-dependencies, -verbose, + -write-dependencies, -write-user-dependencies): New. + +2010-09-21 Jason Blevins + + * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN, + execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY): + Correct spelling. + +2010-09-21 Mikael Morin + + PR fortran/45648 + * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and + info->dim. + + PR fortran/45648 + * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are + accessing dimensions in reversed order. + + PR fortran/45648 + * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying + intrinsic function call. + + * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup. + Update asserts accordingly. + + PR fortran/45648 + * trans.h (gfc_se): New field force_tmp. + * trans-expr.c (gfc_conv_procedure_call): Check for argument alias + and set parmse.force_tmp if some alias is found. + * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation + if se->force_tmp is set. + +2010-09-20 Janus Weil + + PR fortran/45438 + * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for + TBPs, PPCs and pointer/allocatable components. + +2010-09-20 Paul Thomas + + PR fortran/45081 + * simplify.c (is_constant_array_expr): Allow structure array + elements as well as constants. + (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread, + gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived + type of source to the result. + +2010-09-19 Thomas Koenig + + * frontend-passes.c (gfc_expr_walker): Also + handle EXPR_SUBSTRING. + +2010-09-19 Thomas Koenig + + * frontend-passes.c (gfc_expr_walker): Handle + constructors and references. + +2010-09-16 Tobias Burnus + + PR fortran/43665 + * trans-types.c (create_fn_spec): New function. + (gfc_get_function_type): Call it. + +2010-09-16 Jakub Jelinek + + * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types. + (gfc_expr_walker, gfc_code_walker): New prototypes. + * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions. + (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define. + (optimize_namespace): Use gfc_code_walker. + (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks. + (optimize_expr_0, optimize_code_node, + optimize_actual_arglist): Removed. + (optimize_assignment): Don't call optimize_expr_0. + +2010-09-16 Janus Weil + + PR fortran/45674 + * interface.c (compare_parameter): Create vtab for actual argument, + instead of formal (if needed). + +2010-09-15 Janus Weil + + PR fortran/45577 + * resolve.c (resolve_allocate_expr): Do default initialization via + EXEC_INIT_ASSIGN. + +2010-09-11 Francois-Xavier Coudert + + * mathbuiltins.def: Do not defined huge_val built-in. + * trans-const.c (gfc_build_inf_or_huge): New function. + * trans-const.h (gfc_build_inf_or_huge): New prototype. + * f95-lang.c (gfc_init_builtin_functions): Don't defined + huge_val built-ins. + * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't + have functions of type (*) (void) anymore. + (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge. + (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead + of generating a call to huge_val(). + +2010-09-11 Mikael Morin + + * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute. + * dependency.c (gfc_check_dependency): Don't depend on + expr's inline_noncopying_intrinsic_attribute. + * dependency.c (gfc_check_argument_var_dependency, + gfc_check_argument_dependency): Ditto. Recursively check dependency + as NOT_ELEMENTAL in the non-copying (=transpose) case. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. + * resolve.c (find_noncopying_intrinsics): Remove. + (resolve_function, resolve_call): Remove call to + find_noncopying_intrinsics. + + * trans-array.c (gfc_conv_array_transpose): Remove. + (gfc_walk_subexpr): Make non-static. Move prototype... + * trans-array.h (gfc_walk_subexpr): ... here. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose + handling. + (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function, + gfc_inline_intrinsic_function_p): New. + (gfc_is_intrinsic_libcall): Return early in inline intrinsic case. + Remove transpose from the libcall list. + (gfc_walk_intrinsic_function): Special case inline intrinsic. + * trans.h (gfc_inline_intrinsic_function_p): New prototype. + +2010-09-10 Mikael Morin + + * trans-expr.c (expr_is_variable): New function taking non-copying + intrinsic functions into account. + (gfc_trans_assignment_1): Use expr_is_variable. + +2010-09-10 Mikael Morin + + * trans-array.c (gfc_conv_loop_setup): Access the shape along the + real array dimension instead of the scalarizer (loop) dimension. + +2010-09-10 Mikael Morin + + * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array + transposed references. + +2010-09-10 Tobias Burnus + + PR fortran/45186 + * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc, + build4_stat_loc): New inline functions. + (build1_loc, build2_loc, build3_loc, build4_loc): New macros. + (build1_v, build2_v, build3_v, build4_v): Use input_location + as locus. + * trans-array.c (gfc_trans_scalarized_loop_end, + gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc. + * trans.c (gfc_build_addr_expr, gfc_build_array_ref, + gfc_finish_wrapped_block): Ditto. + * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto. + * trans-expr.c (gfc_conv_missing_dummy, + gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto. + * trans-openmp.c (gfc_omp_clause_default_ctor, + gfc_trans_omp_critical, gfc_trans_omp_parallel, + gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, + gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections + gfc_trans_omp_single, gfc_trans_omp_task, + gfc_trans_omp_workshare): Ditto. + +2010-09-09 Steven G. Kargl + + * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed + for dummy argument that appears in a specification statement. + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_get_array_ref_dim): New function. + (gfc_trans_create_temp_array): Reconstruct array + bounds from loop bounds. Use array bounds instead of loop bounds. + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_set_loop_bounds_from_array_spec): + Get the array dimension from the dim array. + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the + dim array to get the stride in the innermost loop. + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): Don't set dim array. + (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array. + * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto. + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension + and info dimension are the same. Loop over loop dimension. + * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension + +2010-09-09 Mikael Morin + + * trans-array.c (gfc_conv_array_transpose): Change generated descriptor + name + 2010-09-09 Tobias Burnus PR fortran/43665 @@ -947,11 +1650,11 @@ PR fortran/42051 PR fortran/44064 * symbol.c (changed_syms): Made static again. - (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. + (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): + * 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 @@ -1014,12 +1717,12 @@ PR fortran/42051 PR fortran/44064 PR fortran/45151 - * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. + * 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. + * 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. @@ -1036,7 +1739,7 @@ PR fortran/42051 PR fortran/44064 * symbol.c (changed_syms): Made non-static. - * parse.c (changed_syms): Declare new external. + * parse.c (changed_syms): Declare new external. (next_statement): Assert changed_syms is NULL at the beginning. 2010-07-30 Janus Weil @@ -1197,7 +1900,7 @@ a parameterized stop condition. (gfc_free_equiv): Use gfc_free_equiv_until. * parse.c (next_statement): Save equivalence list. - (reject_statement): Restore equivalence list. + (reject_statement): Restore equivalence list. 2010-07-25 Jerry DeLisle @@ -1432,7 +2135,7 @@ 2010-07-14 Mikael Morin * trans-array.c (gfc_conv_section_upper_bound): Remove - (gfc_conv_section_startstride): Don't set the upper bound in the + (gfc_conv_section_startstride): Don't set the upper bound in the vector subscript case. (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound