X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=08b4602dd86a08d824a22f75b46741821bd5fd04;hb=f11de7c5f898a5a613f7ccb47f999312f505f125;hp=00bbcd1a20165bcf8cb5c872d8d176a35da55306;hpb=3c08e9c5cd3226e4db7e7b7df8d72be061fbaa1d;p=platform%2Fupstream%2Fgcc.git diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 00bbcd1..08b4602 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,504 @@ +2013-05-20 Tobias Burnus + + PR fortran/48858 + * decl.c (add_global_entry): Use nonbinding name + only for F2003 or if no binding label exists. + (gfc_match_entry): Update calls. + * parse.c (gfc_global_used): Improve error message. + (add_global_procedure): Use nonbinding name + only for F2003 or if no binding label exists. + (gfc_parse_file): Update call. + * resolve.c (resolve_global_procedure): Use binding + name when available. + * trans-decl.c (gfc_get_extern_function_decl): Ditto. + +2013-05-20 Tobias Burnus + + PR fortran/48858 + * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std. + * match.c (gfc_match_common): Don't add commons to gsym. + * resolve.c (resolve_common_blocks): Add to gsym and + add checks. + (resolve_bind_c_comms): Remove. + (resolve_types): Remove call to the latter. + * trans-common.c (gfc_common_ns): Remove static var. + (gfc_map_of_all_commons): Add static var. + (build_common_decl): Correctly handle binding label. + +2013-05-16 Jason Merrill + + * Make-lang.in (f951$(exeext)): Use link mutex. + +2013-05-05 Tobias Burnus + + * resolve.c (conformable_arrays): Avoid segfault + when ar.start[i] == NULL. + +2013-05-05 Tobias Burnus + + PR fortran/57141 + * decl.c (gfc_match_null): Permit use-associated + NULL intrinsic. + +2013-05-04 Tobias Burnus + + * decl.c (gfc_verify_c_interop_param): Permit allocatable + and pointer with -std=f2008ts. + +2013-05-02 Tobias Burnus + + PR fortran/57142 + * simplify.c (gfc_simplify_size): Renamed from + simplify_size; fix kind=8 handling. + (gfc_simplify_size): New function. + (gfc_simplify_shape): Add range check. + * resolve.c (resolve_function): Fix handling + for ISYM_SIZE. + +2013-05-01 Thomas Koenig + + * frontend-passes.c (optimize_power): Fix typo + in comment. + +2013-04-30 Thomas Koenig + + PR fortran/57071 + * frontend-passes.c (optimize_power): Simplify + 1**k to 1. + +2013-04-28 Tobias Burnus + + PR fortran/57114 + * intrinsic.texi (RANK): Correct syntax description and + expected result. + +2013-04-28 Tobias Burnus + + PR fortran/57093 + * trans-types.c (gfc_get_element_type): Fix handling + of scalar coarrays of type character. + * intrinsic.texi (PACK): Add missing ")". + +2013-04-28 Thomas Koenig + + PR fortran/57071 + * frontend-passes (optimize_power): New function. + (optimize_op): Use it. + +2013-04-25 Janne Blomqvist + + PR bootstrap/57028 + * Make-lang.in (f951): Link in ZLIB. + (CFLAGS-fortran/module.o): Add zlib include directory. + +2013-04-22 Janus Weil + + PR fortran/53685 + PR fortran/57022 + * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE + expressions. + * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid + of special treatment for EXPR_ARRAY. + * target-memory.h (gfc_element_size): New prototype. + * target-memory.c (size_array): Remove. + (gfc_element_size): New function. + (gfc_target_expr_size): Modified to always return the full size of the + expression. + +2013-04-20 Tobias Burnus + + PR fortran/56907 + * trans-intrinsic.c (conv_isocbinding_function): Don't pack array + passed to C_LOC + +2013-04-19 Thomas Koenig + Mikael Morin + + PR fortran/56872 + * frontend-passes.c (copy_walk_reduction_arg): Change argument type + to gfc_constructor. If it has an iterator, wrap the copy of its + expression in an array constructor with that iterator. Don't special + case function expressions. + (callback_reduction): Update caller. Don't return early if there is + an iterator. + +2013-04-18 Tobias Burnus + + * expr.c (find_array_element): Don't copy expr. + * data.c (create_character_initializer): Free expr. + * frontend-passes.c (combine_array_constructor): Ditto. + * match.c (match_typebound_call, gfc_match_select_type): Ditto. + * resolve.c (resolve_typebound_function): Free gfc_ref. + +2013-04-18 Tobias Burnus + + PR fortran/56994 + * invoke.texi (NEAREST): S argument is not optional. + +2013-04-17 Janus Weil + + PR fortran/56814 + * interface.c (check_result_characteristics): Get result from interface + if present. + +2013-04-17 Janne Blomqvist + + PR fortran/40958 + * scanner.h: New file. + * Make-lang.in: Dependencies on scanner.h. + * scanner.c (gfc_directorylist): Move to scanner.h. + * module.c: Don't include md5.h, include scanner.h and zlib.h. + (MOD_VERSION): Add comment about backwards compatibility. + (module_fp): Change type to gzFile. + (ctx): Remove. + (gzopen_included_file_1): New function. + (gzopen_included_file): New function. + (gzopen_intrinsic_module): New function. + (write_char): Use gzputc. + (read_crc32_from_module_file): New function. + (read_md5_from_module_file): Remove. + (gfc_dump_module): Use gz* functions instead of stdio, check gzip + crc32 instead of md5. + (read_module_to_tmpbuf): Use gz* functions instead of stdio. + (gfc_use_module): Use gz* functions. + +2013-04-16 Tobias Burnus + + PR fortran/39505 + * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK. + * gfortran.h (ext_attr_id_t): Ditto. + * gfortran.texi (GNU Fortran Compiler Directives): + Document it. + * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK. + (compare_parameter): Ditto - and regard as unlimited polymorphic. + * resolve.c (resolve_symbol, resolve_variable): Add same constraint + checks as for TYPE(*); turn dummy to TYPE(*),dimension(*). + (gfc_explicit_interface_required): Require explicit interface + for NO_ARG_CHECK. + +2013-04-16 Janus Weil + + PR fortran/56968 + * expr.c (gfc_check_pointer_assign): Handle generic functions returning + procedure pointers. + +2013-04-16 Tobias Burnus + + PR fortran/56969 + * intrinsic.c (gfc_intrinsic_func_interface): Don't set + module name to "(intrinsic)" for intrinsics from intrinsic + modules. + +2013-04-15 Tobias Burnus + + * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8. + +2013-04-15 Janne Blomqvist + + PR fortran/56919 + * intrinsics.texi (SYSTEM_CLOCK): Update documentation. + +2013-04-15 Tobias Burnus + + * class.c (gfc_find_intrinsic_vtab): Removed unused var. + * dependency.c (check_data_pointer_types): Fix check. + * frontend-passes.c (check_data_pointer_types): Remove + superfluous statement. + * parse.c (decode_omp_directive): Add missing break. + * resolve.c (resolve_typebound_subroutine: Free variable. + * trans-decl.c (create_function_arglist): Correct condition. + +2013-04-14 Mikael Morin + + PR fortran/56816 + * match.c (gfc_match_select_type): Add syntax error. Move namespace + allocation and cleanup... + * parse.c (decode_statement): ... here. + +2013-04-13 Janus Weil + + PR fortran/55959 + * expr.c (gfc_simplify_expr): Branch is not unreachable. + +2013-04-12 Janus Weil + + PR fortran/56266 + * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR. + +2013-04-12 Tobias Burnus + + PR fortran/56929 + * trans-array.c (duplicate_allocatable): Fix handling + of scalar coarrays. + +2013-04-12 Janus Weil + + PR fortran/56261 + * gfortran.h (gfc_explicit_interface_required): New prototype. + * expr.c (gfc_check_pointer_assign): Check if an explicit interface is + required in a proc-ptr assignment. + * interface.c (check_result_characteristics): Extra check. + * resolve.c (gfc_explicit_interface_required): New function. + (resolve_global_procedure): Use new function + 'gfc_explicit_interface_required'. Do a full interface check. + +2013-04-12 Tobias Burnus + + PR fortran/56845 + * trans-decl.c (gfc_trans_deferred_vars): Restrict + static CLASS init to SAVE and -fno-automatic. + +2013-04-12 Tobias Burnus + + PR fortran/56845 + * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for + allocatable static BT_CLASS. + * trans-expr.c (gfc_class_set_static_fields): New function. + * trans.h (gfc_class_set_static_fields): New prototype. + +2013-04-11 Janne Blomqvist + + * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type. + * arith.c: Replace gfc_try with bool type. + * array.c: Likewise. + * check.c: Likewise. + * class.c: Likewise. + * cpp.c: Likewise. + * cpp.h: Likewise. + * data.c: Likewise. + * data.h: Likewise. + * decl.c: Likewise. + * error.c: Likewise. + * expr.c: Likewise. + * f95-lang.c: Likewise. + * interface.c: Likewise. + * intrinsic.c: Likewise. + * intrinsic.h: Likewise. + * io.c: Likewise. + * match.c: Likewise. + * match.h: Likewise. + * module.c: Likewise. + * openmp.c: Likewise. + * parse.c: Likewise. + * parse.h: Likewise. + * primary.c: Likewise. + * resolve.c: Likewise. + * scanner.c: Likewise. + * simplify.c: Likewise. + * symbol.c: Likewise. + * trans-intrinsic.c: Likewise. + * trans-openmp.c: Likewise. + * trans-stmt.c: Likewise. + * trans-types.c: Likewise. + +2013-04-09 Tobias Burnus + + * gfortran.texi (KIND Type Parameters, + Internal representation of LOGICAL variables): Add crossrefs. + (Intrinsic Types): Mention issues with _Bool interop. + (Naming and argument-passing conventions): New section. + +2013-04-08 Thomas Koenig + + PR fortran/56782 + * frontend-passes.c (callback_reduction): Dont't do + any simplification if there is only a single element + which has an iterator. + +2013-04-07 Tobias Burnus + + PR fortran/56849 + * iresolve.c (gfc_resolve_reshape): Set shape also + with order=. + +2013-04-04 Janus Weil + + PR fortran/40881 + * match.c (gfc_match_return): Remove standard notification. + * primary.c (gfc_match_actual_arglist): Add standard notification. + +2013-04-04 Tobias Burnus + + PR fortran/50269 + * gcc/fortran/check.c (is_c_interoperable, + gfc_check_c_loc): Correct c_loc array checking + for Fortran 2003 and Fortran 2008. + +2013-04-03 Janus Weil + + PR fortran/56284 + PR fortran/40881 + * decl.c (gfc_match_formal_arglist): Warn about alternate-return + arguments. + * interface.c (check_dummy_characteristics): Return if symbols are NULL. + +2013-04-01 Janus Weil + + PR fortran/56500 + * symbol.c (gfc_set_default_type): Build class container for + IMPLICIT CLASS. + +2013-03-31 Tobias Burnus + + * class.c (finalization_scalarizer, finalizer_insert_packed_call, + generate_finalization_wrapper): Avoid segfault with absent SIZE= + argment to TRANSFER and use correct result kind for SIZE. + * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of + nonmodules. + * trans.c (gfc_build_final_call): Handle coarrays. + +2013-03-30 Thomas Koenig + + * trans-expr.c (build_memcmp_call): New function. + (gfc_build_compare_string): If the strings + compared have constant and equal lengths and + the strings are kind=1, or, for kind=4 strings, + the test is for (in)equality, use memcmp(). + +2013-03-29 Tobias Burnus + + PR fortran/35203 + * trans-decl.c (create_function_arglist): Pass hidden argument + for passed-by-value optional+value dummies. + * trans-expr.c (gfc_conv_expr_present, + gfc_conv_procedure_call): Handle those. + +2013-03-28 Thomas Koenig + + PR fortran/45159 + * gfortran.h (gfc_dep_difference): Add prototype. + * dependency.c (discard_nops): New function. + (gfc_dep_difference): New function. + (check_section_vs_section): Use gfc_dep_difference + to calculate the difference of starting indices. + * trans-expr.c (gfc_conv_substring): Use + gfc_dep_difference to calculate the length of + substrings where possible. + +2013-03-28 Thomas Koenig + + PR fortran/55806 + * frontend-passes.c (optimize_code): Keep track of + current code to make code insertion possible. + (combine_array_constructor): New function. + (optimize_op): Call it. + +2013-03-27 Tobias Burnus + + PR fortran/56650 + PR fortran/36437 + * check.c (gfc_check_sizeof, gfc_check_c_sizeof, + gfc_check_storage_size): Update checks. + * intrinsic.texi (SIZEOF): Correct class. + * intrinsic.h (gfc_simplify_sizeof, + gfc_simplify_storage_size): New prototypes. + * intrinsic.c (add_functions): Use them. + * simplify.c (gfc_simplify_sizeof, + gfc_simplify_storage_size): New functions. + +2013-03-27 Janne Blomqvist + + PR fortran/25708 + * module.c (module_locus): Use long for position. + (module_content): New variable. + (module_pos): Likewise. + (prev_character): Remove. + (bad_module): Free data instead of closing mod file. + (set_module_locus): Use module_pos. + (get_module_locus): Likewise. + (module_char): use buffer rather than stdio file. + (module_unget_char): Likewise. + (read_module_to_tmpbuf): New function. + (gfc_use_module): Call read_module_to_tmpbuf. + +2013-03-26 Tobias Burnus + + PR fortran/56649 + * simplify.c (gfc_simplify_merge): Simplify more. + +2013-03-25 Tobias Burnus + + PR fortran/38536 + PR fortran/38813 + PR fortran/38894 + PR fortran/39288 + PR fortran/40963 + PR fortran/45824 + PR fortran/47023 + PR fortran/47034 + PR fortran/49023 + PR fortran/50269 + PR fortran/50612 + PR fortran/52426 + PR fortran/54263 + PR fortran/55343 + PR fortran/55444 + PR fortran/55574 + PR fortran/56079 + PR fortran/56378 + * check.c (gfc_var_strlen): Properly handle 0-sized string. + (gfc_check_c_sizeof): Use is_c_interoperable, add checks. + (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer, + gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New + functions. + * expr.c (check_inquiry): Add c_sizeof, compiler_version and + compiler_options. + (gfc_check_pointer_assign): Refine function result check. + gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED, + GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC, + GFC_ISYM_C_LOC. + (iso_fortran_env_symbol, iso_c_binding_symbol): Handle + NAMED_SUBROUTINE. + (generate_isocbinding_symbol): Update prototype. + (get_iso_c_sym): Remove. + (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes. + * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function. + (gfc_intrinsic_sub_interface): Use it. + (add_functions, add_subroutines): Add missing C-binding intrinsics. + (gfc_intrinsic_func_interface): Add special case for c_loc. + gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions. + (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them. + * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer, + gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc, + gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes. + * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New + functions. + * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and + NAMED_FUNCTION. + * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness. + * module.c (create_intrinsic_function): Support subroutines and + derived-type results. + (use_iso_fortran_env_module): Update calls. + (import_iso_c_binding_module): Ditto; update calls to + generate_isocbinding_symbol. + * resolve.c (find_arglists): Skip for intrinsic symbols. + (gfc_resolve_intrinsic): Find intrinsic subs via id. + (is_scalar_expr_ptr, gfc_iso_c_func_interface, + set_name_and_label, gfc_iso_c_sub_interface): Remove. + (resolve_function, resolve_specific_s0): Remove calls to those. + (resolve_structure_cons): Fix handling. + * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr + generation. + (gen_cptr_param, gen_fptr_param, gen_shape_param, + build_formal_args, get_iso_c_sym): Remove. + (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE. + (generate_isocbinding_symbol): Support hidden symbols and + using c_ptr/c_funptr symtrees for nullptr defs. + * target-memory.c (gfc_target_encode_expr): Fix handling + of c_ptr/c_funptr. + * trans-expr.c (conv_isocbinding_procedure): Remove. + (gfc_conv_procedure_call): Remove call to it. + (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling + of c_ptr/c_funptr. + * trans-intrinsic.c (conv_isocbinding_function, + conv_isocbinding_subroutine): New. + (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine): + Call them. + * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr. + * trans-types.c (gfc_typenode_for_spec, + gfc_get_derived_type): Ditto. + (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE. + 2013-03-18 Tobias Burnus * gfortran.h (gfc_option_t): Remove flag_whole_file. @@ -107,7 +608,7 @@ * trans-array.c (structure_alloc_comps): Handle procedure-pointer components with allocatable result. -2012-02-21 Tobias Burnus +2013-02-21 Tobias Burnus PR fortran/56416 * gfortran.texi (Part II: Language Reference, Extensions,