diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-01-01 12:14:37 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2020-01-01 12:14:37 +0100 |
commit | 7e7065b976573cb392d435856a5f9e5a6424a57c (patch) | |
tree | 1ac730d7a8a7404d56e6012b5f5b90f29c7659fa /gcc/fortran | |
parent | 65c2b6d290e1d47530b8d14d7077aa8639a8728e (diff) | |
download | gcc-7e7065b976573cb392d435856a5f9e5a6424a57c.zip gcc-7e7065b976573cb392d435856a5f9e5a6424a57c.tar.gz gcc-7e7065b976573cb392d435856a5f9e5a6424a57c.tar.bz2 |
gcc.c (process_command): Update copyright notice dates.
* gcc.c (process_command): Update copyright notice dates.
* gcov-dump.c (print_version): Ditto.
* gcov.c (print_version): Ditto.
* gcov-tool.c (print_version): Ditto.
* gengtype.c (create_file): Ditto.
* doc/cpp.texi: Bump @copying's copyright year.
* doc/cppinternals.texi: Ditto.
* doc/gcc.texi: Ditto.
* doc/gccint.texi: Ditto.
* doc/gcov.texi: Ditto.
* doc/install.texi: Ditto.
* doc/invoke.texi: Ditto.
gcc/fortran/
* gfortranspec.c (lang_specific_driver): Update copyright notice
dates.
* gfc-internals.texi: Bump @copying's copyright year.
* gfortran.texi: Ditto.
* intrinsic.texi: Ditto.
* invoke.texi: Ditto.
gcc/d/
* gdc.texi: Bump @copyrights-d year.
gcc/go/
* gccgo.texi: Bump @copyrights-go year.
gcc/ada/
* gnat_ugn.texi: Bump @copying's copyright year.
* gnat_rm.texi: Likewise.
libitm/
* libitm.texi: Bump @copying's copyright year.
libgomp/
* libgomp.texi: Bump @copying's copyright year.
libquadmath/
* libquadmath.texi: Bump @copying's copyright year.
From-SVN: r279811
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 3122 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog-2019 | 3132 | ||||
-rw-r--r-- | gcc/fortran/gfc-internals.texi | 2 | ||||
-rw-r--r-- | gcc/fortran/gfortran.texi | 2 | ||||
-rw-r--r-- | gcc/fortran/gfortranspec.c | 2 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.texi | 2 | ||||
-rw-r--r-- | gcc/fortran/invoke.texi | 4 |
7 files changed, 3140 insertions, 3126 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1fcfd92..a95e97f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3122 +1,4 @@ -2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91651 - * intrinsic.c (add_sym_4ind): New function. - (add_functions): Use it for INDEX. - (resolve_intrinsic): Also call f1m for INDEX. - * intrinsic.h (gfc_resolve_index_func): Adjust prototype to - take a gfc_arglist instead of individual arguments. - * iresolve.c (gfc_resolve_index_func): Adjust arguments. - Remove KIND argument if present, and make sure this is - not done twice. - * trans-decl.c: Include "intrinsic.h". - (gfc_get_extern_function_decl): Special case for resolving INDEX. - -2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92961 - * gfortran.h (gfc_seen_div0): Add declaration. - * arith.h (gfc_seen_div0): Add definition. - (eval_intrinsic): For integer division by zero, set gfc_seen_div0. - * decl.c (variable_decl): If resolution resp. simplification - fails for array spec and a division of zero error has been - seen, return MATCH_ERROR. - -2019-12-21 Harald Anlauf <anlauf@gmx.de> - - PR fortran/92990 - * match.c (gfc_match_nullify): Check for valid pointer object. - Reject bounds remapping. - -2019-12-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/92753 - * expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the - temporary expression has been converted to a constant and make - the new expression accordingly. Correct the error in INQUIRY_RE - and INQUIRY_IM cases. The original rather than the resolved - expression was being used as the source in mpfr_set. - -2019-12-20 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/91512 - PR fortran/92738 - * lang.opt (-finline-arg-packing): Add trailing dot to help text. - -2019-12-20 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR middle-end/91512 - PR fortran/92738 - * invoke.texi: Document -finline-arg-packing. - * lang.opt: Add -finline-arg-packing. - * options.c (gfc_post_options): Handle -finline-arg-packing. - * trans-array.c (gfc_conv_array_parameter): Use - flag_inline_arg_packing instead of checking for optimize and - optimize_size. - -2019-12-20 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92996 - * expr.c (simplify_parameter_variable): Call gfc_resolve_ref and - gfc_expression_rank; fix location info. - * gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare. - * match.c (gfc_match_stopcode): Remove redundant setting of - gfc_init_expr_flag; early return if gfc_simplify_expr has an error. - * resolve.c (gfc_expression_rank): Renamed from expression_rank; - minor cleanup. - (gfc_resolve_ref): Removed static and renamed from resolve_ref. - (resolve_variable, resolve_typebound_function, - resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc, - gfc_resolve_expr, resolve_procedure): Update calls. - -2019-12-20 Tobias Burnus <tobias@codesourcery.com> - - * openmp.c (resolve_omp_clauses): Move is-coindexed check from here ... - (gfc_match_omp_variable_list): ... to here. - -2019-12-19 Julian Brown <julian@codesourcery.com> - - * openmp.c (resolve_oacc_data_clauses): Don't disallow allocatable - polymorphic types for OpenACC. - * trans-openmp.c (gfc_trans_omp_clauses): Support polymorphic class - types. - -2019-12-19 Julian Brown <julian@codesourcery.com> - - * gfortran.h (gfc_omp_map_op): Add OMP_MAP_ATTACH, OMP_MAP_DETACH. - * openmp.c (gfc_match_omp_variable_list): Add allow_derived parameter. - Parse derived-type member accesses if true. - (omp_mask2): Add OMP_CLAUSE_ATTACH and OMP_CLAUSE_DETACH. - (gfc_match_omp_map_clause): Add allow_derived parameter. Pass to - gfc_match_omp_variable_list. - (gfc_match_omp_clauses): Support attach and detach. Support derived - types for appropriate OpenACC directives. - (OACC_PARALLEL_CLAUSES, OACC_SERIAL_CLAUSES, OACC_KERNELS_CLAUSES, - OACC_DATA_CLAUSES, OACC_ENTER_DATA_CLAUSES): Add OMP_CLAUSE_ATTACH. - (OACC_EXIT_DATA_CLAUSES): Add OMP_CLAUSE_DETACH. - (check_symbol_not_pointer): Don't disallow pointer objects of derived - type. - (resolve_oacc_data_clauses): Don't disallow allocatable derived types. - (resolve_omp_clauses): Perform duplicate checking only for non-derived - type component accesses (plain variables and arrays or array sections). - Support component refs. - * trans-expr.c (gfc_conv_component_ref, - conv_parent_component_references): Make global. - (gfc_maybe_dereference_var): New function, broken out of... - (gfc_conv_variable): ...here. Call above function. - * trans-openmp.c (gfc_omp_privatize_by_reference): Support component - refs. - (gfc_trans_omp_array_section): New function, broken out of... - (gfc_trans_omp_clauses): ...here. Support component refs/derived - types, attach and detach clauses. - * trans.h (gfc_conv_component_ref, conv_parent_component_references, - gfc_maybe_dereference_var): Add prototypes. - -2019-12-19 Mark Eggleston <mark.eggleston@codethink.com> - - PR fortran/92896 - * array.c (walk_array_constructor): Replace call to gfc_convert_type - with call to gfc_convert_type_warn with new argument set to true. - (check_element_type): Replace call to cfg_convert_type with call to - gfc_convert_type_warn with new argument set to true. - * gfortran.h: Add argument "array" to gfc_convert_type_warn default - value set to false. - *intrinsic.c (gfc_convert_type_warn): Update description of arguments. - Add new argument to argument list. Add check for conversion to numeric - or logical from character and array set to true, i.e. if conversion - from character is in an array constructor reject it, goto bad. - -2019-12-19 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92977 - * frontend-passes.c (call_external_blas): Use || instead of |. - -2019-12-19 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92977 - * frontend-passes.c (in_omp_atomic): New variable. - (cfe_expr_0, matmul_to_var_expr, matmul_temp_args, - inline_matmul_assign, call_external_blas): Don't optimize in - EXEC_OMP_ATOMIC. - (optimize_namespace): Clear in_omp_atomic. - (gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore - it around. - -2019-12-19 Julian Brown <julian@codesourcery.com> - Maciej W. Rozycki <macro@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - Thomas Schwinge <thomas@codesourcery.com> - - * gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC. - * openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE. - (gfc_match_omp_clauses): Support no_create. - (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES) - (OACC_DATA_CLAUSES): Add OMP_CLAUSE_NO_CREATE. - * trans-openmp.c (gfc_trans_omp_clauses_1): Support - OMP_MAP_NO_ALLOC. - -2019-12-18 Harald Anlauf <anlauf@gmx.de> - - PR fortran/70853 - * trans-expr.c (gfc_trans_pointer_assignment): Reject bounds - remapping if pointer target is NULL(). - -2019-12-12 Harald Anlauf <anlauf@gmx.de> - - PR fortran/92898 - * check.c (gfc_check_is_contiguous): Simplify check to handle - arbitrary NULL() argument. - -2019-12-11 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92899 - * trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP, - do look through conversion on expr2 if any. - -2019-12-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/92897 - * array.c (gfc_set_array_spec): Remove invalid assert() triggered - by invalid Fortran code. - -2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91643 - * trans-array.c (gfc_conv_array_parameter): Do not repack - an assumed rank dummy argument. - -2019-12-10 Martin Liska <mliska@suse.cz> - - PR fortran/92874 - * dependency.c (gfc_dep_compare_expr): Bail out - when one of the arguments is null. - -2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92863 - * misc.c (gfc_typename): If derived component is NULL for - derived or class, return "invalid type" or "invalid class", - respectively. - -2019-12-10 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92872 - * trans-array.c (get_CFI_desc): Fix cond whether saved desc exists. - -2019-12-09 David Malcolm <dmalcolm@redhat.com> - - * error.c (gfc_diagnostic_starter): Add pp_newline call before - call to diagnostic_show_locus. - -2019-12-09 Frederik Harwath <frederik@codesourcery.com> - - * trans-openmp.c (gfc_trans_omp_reduction_list): Pass correct location for each - clause to build_omp_clause. - -2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92780 - * resolve.c (resolve_assoc_var): Issue error if the associating - entity is a program. - -2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92764 - * interface.c (gfc_procedure_use): Check for existence of derived - component before using (twice). - -2019-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92755 - * dependency.c (gfc_dep_resolver): Move skipping of _data ref - into the loop. - -2019-12-07 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92793 - * trans.c (gfc_get_location): Declare. - * trans.c (gfc_get_location): Define; returns column-corrected location. - (trans_runtime_error_vararg, gfc_trans_runtime_check, - gfc_generate_module_code): Use new function. - * trans-array.c (gfc_trans_auto_array_allocation): Likewise. - * trans-common.c (build_field, get_init_field, create_common): Likewise. - * trans-decl.c (gfc_build_label_decl, gfc_get_symbol_decl): Likewise. - * trans-openmp.c (gfc_trans_omp_reduction_list, gfc_trans_omp_clauses): - Likewise. - * trans-stmt.c (gfc_trans_if_1): Likewise. - -2019-12-06 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92775 - * trans.h (struct lang_type, struct lang_decl): Remove span member. - (GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros. - * trans-array.h (gfc_get_descriptor_offsets_for_info): Add another - argument. - * trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF - argument and initialize *SPAN_OFF to the offset of span field. - * trans-types.c (gfc_get_array_descr_info): Adjust - gfc_get_descriptor_offsets_for_info caller. Compute elem_size - as base->span instead of TYPE_SIZE_UNIT (etype) constant. - -2019-12-06 Tobias Burnus <tobias@codesourcery.com> - Kwok Cheung Yeung <kcy@codesourcery.com> - - * trans-openmp.c (gfc_build_conditional_assign, - gfc_build_conditional_assign_expr): New static functions. - (gfc_omp_finish_clause, gfc_trans_omp_clauses): Handle mapping of - absent optional arguments and fix mapping of present optional args. - -2019-12-05 Tobias Burnus <tobias@codesourcery.com> - - * trans-openmp.c (gfc_omp_is_optional_argument, - gfc_omp_check_optional_argument): Handle type(c_ptr),value which uses a - -2019-12-05 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92781 - * trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is - current_function_decl, add length to current rather than parent - function and expect DECL_CONTEXT (length) to be current_function_decl. - -2019-12-04 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92754 - * intrinsic.c (gfc_intrinsic_func_interface): Set - sym's flavor, intrinsic and function attribute if - unset. - -2019-12-04 Jakub Jelinek <jakub@redhat.com> - - PR fortran/92756 - * trans-openmp.c (gfc_trans_omp_teams): Wrap OMP_TEAMS body into a - BIND_EXPR with a forced BLOCK. - -2019-11-30 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91783 - * dependency.c (gfc_dep_resolver): Do not look at _data - component if present. - -2019-11-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> - - PR fortran/90374 - * io.c (check_format): Allow zero width expoenent with e0. - -2019-11-27 Jakub Jelinek <jakub@redhat.com> - - PR fortran/91944 - * simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead - of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER. - -2019-11-27 Tobias Burnus <tobias@codesourcery.com> - - PR middle-end/92463 - * arith.c (gfc_check_real_range): Replace mp_exp_t by mpfr_exp_t. - -2019-11-25 Harald Anlauf <anlauf@gmx.de> - - PR fortran/92629 - * simplify.c (convert_mpz_to_unsigned): Skip assert for argument - range when -fno-range-check is specified. - -2019-11-25 Mark Eggleston <mark.eggleston@codethink.com> - Jim MacArthur <jim.macarthur@codethink.co.uk> - - * gfortran.texi: Update Hollerith constants support for character types - and use in comparisons. - * invoke.texi: Tidy up list of options. Update description of - -fdec-char-conversions. - * resolve.c (is_character_based): New. - (Convert_hollerith_to_character): New. (convert_to_numeric): New. - (resolve_operator): If both sides are character based and -fdec is - enabled convert Hollerith to character. If an operand is Hollerith, the - other is numeric and -fdec is enabled convert to numeric. - (resolve_ordinary_assign): Add check for -fdec-char-conversions for - assignment of character literals.2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/92463 - Revert r269139 - * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use - mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p. - (norm2_add_squared): Likewise. Use mpfr_exp_t rather than - mp_exp_t. - -2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/92463 - * arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t. - (gfc_check_real_range): Likewise. - * gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN. - * module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t. - * simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t. - (radians_f): Likewise. - (fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t. - (asympt_erfc_scaled): Likewise. - (gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and - GMP_RND* to MPFR_RND*. - -2019-11-15 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/69654 - * trans-expr.c (gfc_trans_structure_assign): Move assignment to - 'cm' after treatment of C pointer types and test that the type - has been completely built before it. Add an assert that the - backend_decl for each component exists. - -2019-11-13 Tobias Burnus <tobias@codesourcery.com> - - * trans-expr.c (gfc_conv_procedure_call): Fold hidden - is-present argument to the right type. - -2019-11-12 Harald Anlauf <anlauf@gmx.de> - - PR fortran/81651 - * module.c (gzopen_included_file, gzopen_included_file_1) - (gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully - qualified module path for error reporting. - -2019-11-12 Martin Liska <mliska@suse.cz> - - * options.c (gfc_init_options): - Use SET_OPTION_IF_UNSET. - -2019-11-12 Maciej W. Rozycki <macro@codesourcery.com> - Frederik Harwath <frederik@codesourcery.com> - - gcc/fortran/ - * gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP, - ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL - enumeration constants. - (gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL - enumeration constants. - * match.h (gfc_match_oacc_serial): New prototype. - (gfc_match_oacc_serial_loop): Likewise. - * dump-parse-tree.c (show_omp_node, show_code_node): Handle - EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. - * match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP. - * openmp.c (OACC_SERIAL_CLAUSES): New macro. - (gfc_match_oacc_serial_loop): New function. - (gfc_match_oacc_serial): Likewise. - (oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP. - (resolve_omp_clauses): Handle EXEC_OACC_SERIAL. - (oacc_code_to_statement): Handle EXEC_OACC_SERIAL and - EXEC_OACC_SERIAL_LOOP. - (gfc_resolve_oacc_directive): Likewise. - * parse.c (decode_oacc_directive) <'s'>: Add case for "serial" - and "serial loop". - (next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL. - (gfc_ascii_statement): Likewise. Handle ST_OACC_END_SERIAL_LOOP - and ST_OACC_END_SERIAL. - (parse_oacc_structured_block): Handle ST_OACC_SERIAL. - (parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and - ST_OACC_END_SERIAL_LOOP. - (parse_executable): Handle ST_OACC_SERIAL_LOOP and - ST_OACC_SERIAL. - (is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. - * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. - * st.c (gfc_free_statement): Likewise. - * trans-openmp.c (gfc_trans_oacc_construct): Handle - EXEC_OACC_SERIAL. - (gfc_trans_oacc_combined_directive): Handle - EXEC_OACC_SERIAL_LOOP. - (gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and - EXEC_OACC_SERIAL. - * trans.c (trans_code): Likewise. - -2019-11-11 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/91828 - * simplify.c (gfc_simplify_fraction): Remove fallback path for - MPFR < 3.1.0. - -2019-11-11 Tobias Burnus <tobias@codesourcery.com> - Kwok Cheung Yeung <kcy@codesourcery.com> - - * trans-expr.c (gfc_conv_expr_present): Check for DECL_ARTIFICIAL - for the VALUE hidden argument avoiding -fallow-underscore issues. - * trans-decl.c (create_function_arglist): Also set - GFC_DECL_OPTIONAL_ARGUMENT for per-value arguments. - * f95-lang.c (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT): - Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; point - to gfc_omp_check_optional_argument. - * trans.h (gfc_omp_check_optional_argument): Subsitutes - gfc_omp_is_optional_argument declaration. - * trans-openmp.c (gfc_omp_is_optional_argument): Make static. - (gfc_omp_check_optional_argument): New function. - -2019-11-10 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/91413 - * trans-decl.c (gfc_finish_var_decl): Don't print warning when - -fno-automatic is enabled. - -2019-11-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/92123 - *decl.c (gfc_verify_c_interop_param): Remove error asserting - that pointer or allocatable variables in a bind C procedure are - not supported. Delete some trailing spaces. - * trans-stmt.c (trans_associate_var): Correct the attempt to - treat scalar pointer or allocatable temporaries as if they are - array descriptors. - -2019-11-09 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92321 - * frontend-passes.c (call_external_blas): Commit symbol for - external BLAS routine. - -2019-11-08 Jakub Jelinek <jakub@redhat.com> - - * arith.c (character2representation): Change i type to size_t. - -2019-11-08 Mark Eggleston <mark.eggleston@codethink.com> - Jim MacArthur <jim.macarthur@codethink.co.uk> - - * arith.c (hollerith2representation): Use OPT_Wcharacter_truncation in - call to gfc_warning. - (character2representation, gfc_character2int, gfc_character2real, - gfc_character2complex and gfc_character2logical): New. - * arith.h (gfc_character2int, gfc_character2real, gfc_character2complex, - gfc_character2logical): Declare. - * expr.c (gfc_check_assign): Return true if left hand side is numeric - or logical and the right hand side is character and of kind=1. - * gfortran.texi: Add -fdec-char-conversions. - * intrinsic.c (add_conversions): Add conversions from character to - integer, real, complex and logical types for their supported kinds. - (gfc_convert_type_warn): Reorder if..else if.. sequence so that warnings - are produced for conversion to logical. - * invoke.texi: Add option to list of options. - * invoke.texi: Add Character conversion subsection to Extensions - section. - * lang.opt: Add new option. - * options.c (set_dec_flags): Add SET_BITFLAG for - flag_dec_char_conversions. - * resolve.c (resolve_ordindary_assign): Issue error if the left hand - side is numeric or logical and the right hand side is a character - variable. - * simplify.c (gfc_convert_constant): Assign the conversion function - depending on destination type. - * trans-const.c (gfc_constant_to_tree): Use OPT_Wsurprising in - gfc_warning allowing the warning to be switched off only if - flag_dec_char_conversions is enabled. - -2019-11-08 Tobias Burnus <tobias@codesourcery.com - - PR fortran/91253 - * scanner.c (skip_fixed_comments): Move comment - lines to next if block. - (gfc_next_char_literal): Fix continue_line setting. - (get_file): Remove bogus ATTRIBUTE_UNUSED. - -2019-11-06 Jerry DeLisle <jvdelisle@gcc.ngu.org> - - PR fortran/90374 - * io.c (check_format): Allow zero width for D, E, EN, and ES - specifiers as default and when -std=F2018 is given. Retain - existing errors when using the -fdec family of flags. - -2019-11-03 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92113 - * trans-decl.c (gfc_get_symbol_decl): If __def_init actually - contains a value, put it into the read-only section. - -2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> - - * decl.c (match_byte_typespec): New function. Match BYTE type-spec. - (gfc_match_decl_type_spec): Use it. - -2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90988 - * decl.c (gfc_match_private, gfc_match_public): Fixed-form source code - does not require whitespace between PRIVATE (or PUBLIC) and an entity. - -2019-11-01 Tobias Burnus <tobias@codesourcery.com> - - * f95-lang.c (LANG_HOOKS_OMP_ARRAY_DATA): Set to gfc_omp_array_data. - * trans-array.c (gfc_conv_descriptor_data_get): Handle also - REFERENCE_TYPE. - * trans-openmp.c (gfc_omp_array_data): New. - * trans.h (gfc_omp_array_data): New prototype. - -2019-10-31 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92284. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Free CFI descriptor - at the end; partial revised revert of Rev. 277502. - -2019-10-31 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92277 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL - checking. - -2019-10-30 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92208 - * trans-array.c (gfc_conv_array_parameter): Only copy - string-length backend_decl if expression is not a function. - -2019-10-30 Mark Eggleston <mark.eggleston@codethink.com> - - * invoke.texi: Add -Wno-overwrite-recursive to list of options. Add - description of -Wno-overwrite-recursive. Fix typo in description - of -Winteger-division. - * lang.opt: Add option -Woverwrite-recursive initialised as on. - * option.c (gfc_post_options): Output warning only if it is enabled. - -2019-10-28 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/91863 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Don't free data - memory as that's done on the Fortran side. - (gfc_conv_procedure_call): Handle void* pointers from - gfc_conv_gfc_desc_to_cfi_desc. - -2019-10-27 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/86248 - * resolve.c (flag_fn_result_spec): Correct a typo before the - function declaration. - * trans-decl.c (gfc_sym_identifier): Boost the length of 'name' - to allow for all variants. Simplify the code by using a pointer - to the symbol's proc_name and taking the return out of each of - the conditional branches. Allow symbols with fn_result_spec set - that do not come from a procedure namespace and have a module - name to go through the non-fn_result_spec branch. - -2019-10-25 Cesar Philippidis <cesar@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - - * openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons - argument. - (gfc_match_omp_clauses): Update calls to permit common blocks for - OpenACC's copy/copyin/copyout, create/delete, host, - pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in, - present_or_copy_out, present_or_create and self. - -2019-10-24 Martin Liska <mliska@suse.cz> - - PR fortran/92174 - * array.c (gfc_resolve_array_spec): Break the loop - for out of bounds index. - * resolve.c (is_non_constant_shape_array): Likewise. - -2019-10-23 Steven G. Kargl <kargl@gcc.gnu.org> - - dump-parse-tree.c (show_expr): Add dumping of BT_BOZ constants. - -2019-10-22 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/92174 - * decl.c (attr_decl1): Move check for F2018:C822 from here ... - * array.c (gfc_set_array_spec): ... to here. - -2019-10-18 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/69455 - * trans-decl.c (generate_local_decl): Avoid misconstructed - intrinsic modules in a BLOCK construct. - -2019-10-18 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/91586 - * class.c (gfc_find_derived_vtab): Return NULL - instead of deref'ing NULL pointer. - -2019-10-15 James Norris <jnorris@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - - PR fortran/65438 - * openmp.c (check_array_not_assumed): Remove pointer check. - -2019-10-14 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/89943 - decl.c (gfc_match_function_decl): Ignore duplicate BIND(C) for function - declaration in submodule. Implement at check for F2018 C1550. - (gfc_match_entry): Use temporary for locus, which allows removal of - one gfc_error_now(). - (gfc_match_subroutine): Ignore duplicate BIND(C) for subroutine - declaration in submodule. Implement at check for F2018 C1550. - -2019-10-14 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92004 - * array.c (expand_constructor): Set from_constructor on - expression. - * gfortran.h (gfc_symbol): Add maybe_array. - (gfc_expr): Add from_constructor. - * interface.c (maybe_dummy_array_arg): New function. - (compare_parameter): If the formal argument is generated from a - call, check the conditions where an array element could be - passed to an array. Adjust error message for assumed-shape - or pointer array. Use correct language for assumed shaped arrays. - (gfc_get_formal_from_actual_arglist): Set maybe_array on the - symbol if the actual argument is an array element fulfilling - the conditions of 15.5.2.4. - -2019-10-14 Tobias Burnus <tobias@codesourcery.com> - - * error.c: Remove debug pragma added in previous commit. - -2019-10-14 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92072 - * error.c (error_print, gfc_format_decoder): Fix %C column- - offset handling. - -2019-10-13 Damian Rouson <damain@sourceryinstitue.org> - - PR fortran/91513 - * resolve.c (resolve_ordinary_assign): Improved error message. - -2019-10-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90297 - * resolve.c (resolve_typebound_function): Remove code with no - functional effect. - -2019-10-13 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/92017 - * expr.c (simplify_parameter_variable): Set the character length - of the result expression from the original expression if - necessary. - -2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91649 - check.c (gfc_check_findloc): Additional checking for valid arguments - -2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91715 - * decl.c (gfc_match_prefix): If matching a type-spec returns an error, - it's an error so re-act correctly. - -2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/92018 - * check.c (reset_boz): New function. - (illegal_boz_arg, boz_args_check, gfc_check_complex, gfc_check_float, - gfc_check_transfer): Use it. - (gfc_check_dshift): Use reset_boz, and re-arrange the checking to - help suppress possible run-on errors. - (gfc_check_and): Restore checks for valid argument types. Use - reset_boz, and re-arrange the checking to help suppress possible - run-on errors. - * resolve.c (resolve_function): Actual arguments cannot be BOZ in - a function reference. - -2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/92019 - * array.c (match_subscript): BOZ cannot be an array subscript. - -2019-10-11 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/92050 - * trans-expr.c (gfc_conv_procedure_call): Handle code generated - by -fcheck=all. - -2019-10-11 Tobias Burnus <tobias@codesourcery.com> - - * f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to - gfc_omp_is_allocatable_or_ptr. - * trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT - only if not passed by value. - * trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New. - (gfc_trans_omp_clauses): For MAP, handle (present) optional arguments; - for target update, handle allocatable/pointer scalars. - * trans.h (gfc_omp_is_allocatable_or_ptr): Declare. - -2019-10-10 Tobias Burnus <tobias@codesourcery.com> - - * trans-openmp.c (gfc_trans_omp_clauses): Actually pass use_device_addr - on to the middle end. - -2019-10-08 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91801 - * simplify.c (gfc_simplify_reshape): Convert a gcc_assert into a - gfc_error as a user can easily hit the condition. - -2019-10-08 Tobias Burnus <tobias@codesourcery.com> - - * parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD. - -2019-10-08 Tobias Burnus <tobias@codesourcery.com> - - * match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos. - * openmp.c (gfc_match_omp_eos): Make static. - (gfc_match_omp_eos_error): New. - * parse.c (matchs, matchdo, matchds): Do as done for 'matcho' - - if error occurred after OpenMP/OpenACC directive matched, do not - try other directives. - (decode_oacc_directive, decode_omp_directive): Call new function - instead. - -2019-10-05 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/47045 - * decl.c (variable_decl): Do not search parent namespace for symbol. - -2019-10-05 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91926 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Correct the - assignment of the attribute field to account correctly for an - assumed shape dummy. Assign separately to the gfc and cfi - descriptors since the atribute can be different. Add btanch to - correctly handle missing optional dummies. - -2019-10-04 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran.91959 - * fortran/decl.c (variable_decl): Re-arrange code for matching %FILL. - -2019-10-04 Tobias Burnus <tobias@codesourcery.com> - - * error.c (error_print, gfc_format_decoder): Fix off-by one issue - with %C. - -2019-10-03 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91497 - * simplify.c (gfc_simplify_dble, simplify_intconv, gfc_simplify_real, - gfc_simplify_sngl): Disable -Wconversion and -Wconversion-extra - warnings for explicit conversion of literal constants. - -2019-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> - - * primary.c (match_real_constant): Remove shadowing local vars. - Rename local vars. Fix undefined behavior in loop termination. - (gfc_convert_to_structure_constructor): Rename local var. - -2019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/84487 - * trans-decl.c (gfc_get_symbol_decl): For __def_init, set - DECL_ARTIFICAL and do not set TREE_READONLY. - -2019-10-03 Mark Eggleston <mark.eggleston@codethink.com> - - * array.c (check_element_type): Call gfc_typename with the gfc_expr - "expr" instead of its gfc_typespec "ts". - * check.c (gfc_check_co_reduce): Call gfc_typename with the gfc_expr - "a" instead of its gfc_typespec "ts". - (gfc_check_co_reduce): Call gfc_typename with the gfc_expr "a" instead - of its gfc_typespec "ts". - (gfc_check_eoshift): Call gfc_typename with the gfc_expr "array" - instead of its gfc_typespec ts. - (gfc_check_same_type_as): In two calls to gfc_typename use "a" and "b" - of type gfc_expr instead of the "ts" fields of "a" and "b" - * decl.c (variable_decl): Call gfc_typename with the gfc_expr - "initializer" instead of its gfc_typespec "ts". - * expr.c (gfc_check_assign): Use "rvalue" and "lvalue" of type gfc_expr - in calls to gfc_typename instead of their "ts" fields of type - gfc_typespec. - (gfc_check_pointer_assign): Use "rvalue" and "lvalue" of type gfc_expr - in calls to gfc_typename instead of their "ts" fields of type - gfc_typespec. - * gfortran.h: Add prototypes for gfc_dummy_typename and a new function - gfc_typename for gfc_expr *. - *interface.c (gfc_check_dummy_characteristics): Use gfc_dummy_typename - for the dummy variable. - (compare_parameter): Use gfc_dummy_typename for the formal argument. - Use "actual" of type gfc_expr in call to gfc_typename for the actual - argument. - * intrinsic.c (check_arglist): Use gfc_dummy_typename for the formal - argument. Use expressions of type gfc_expr from the argument list to - call gfc_typename. - (gfc_convert_type_warn): New local variable "is_char_constant" set if - the expression type is a character constant. At the "bad" label - determine source type name by calling gfc_typename with either "expr" - for character constants or "from_ts" and use that in the warning - messages instead of the original call to gfc_typename. - * misc.c (gfc_typename): New function for gfc_expr *, use for where - character types are possible it can get the character length from - gfc_expr for character literals. - (gfc_dummy_typename): New functionfor gfc_typespec *, if no character - length is present the character type is assumed and the appropriate - string is return otherwise it calls gfc_typename for gfc_typespec *. - (gfc_typespec): for character types construct the type name with length - and kind (if it is not default kind). - -2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91784 - * simplify.c (gfc_convert_constant): Simplify expression if the - expression type is EXPR_OP. - -2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91785 - * primary.c (gfc_match_varspec): Ensure an inquiry parameter has - it locus set. - -2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91942 - * io.c (match_vtag): Check for non-NULL result->symtree. - (match_out_tag): Check for invalid constant due to inquiry parameter. - (match_filepos): Instead of a syntax error, go to cleanup to get better - error messages. - -2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91943 - * match.c (gfc_match_call): BOZ cannot be an actual argument in - a subroutine reference. - * resolve.c (resolve_function): BOZ cannot be an actual argument in - a function reference. - -2019-10-01 Jan Hubicka <jh@suse.cz> - - * module.c (load_commons): Initialize flags to 0 to silence - -Wmaybe-uninitialized warning. - (read_module): Likewise for n and comp_name. - -2019-10-02 Tobias Burnus <tobias@codesourcery.com> - - * dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR. - * gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR. - * openmp.c (omp_mask1): Likewise. - (gfc_match_omp_clauses): Match 'use_device_addr'. - (OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR. - (resolve_omp_clauses): Add it; add is_device_ptr checks. - -2019-10-02 Tobias Burnus <tobias@codesourcery.com> - - * openmp.c (gfc_match_omp_clauses): Show a clause-parsing - error if none was rised before. - * parse.c (matcha, matcho): If error occurred after - OpenMP/OpenACC directive matched, do not try other directives. - -2019-10-02 Tobias Burnus <tobias@codesourcery.com> - - * trans-openmp.c (gfc_omp_is_optional_argument): Fix coding - style. - -2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com> - - * f95-lang.c (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Define to - gfc_omp_is_optional_argument. - * trans-decl.c (create_function_arglist): Set - GFC_DECL_OPTIONAL_ARGUMENT in the generated decl if the parameter is - optional. - * trans-openmp.c (gfc_omp_is_optional_argument): New. - (gfc_omp_privatize_by_reference): Return true if the decl is an - optional pass-by-reference argument. - * trans.h (gfc_omp_is_optional_argument): New declaration. - (lang_decl): Add new optional_arg field. - (GFC_DECL_OPTIONAL_ARGUMENT): New macro. - -2019-10-01 David Malcolm <dmalcolm@redhat.com> - - * error.c (gfc_diagnostic_starter): Clear the prefix before - calling diagnostic_show_locus. - -2019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91641 - * check.c (gfc_check_is_contiguous): null() cannot be an actual - argument to is_contiguous(). - -2019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91714 - * decl.c (gfc_match_decl_type_spec): Issue errors for a few - mangled types. - -2019-09-29 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91726 - * resolve.c (gfc_expr_to_initialize): Bail out with a copy of - the original expression if the array ref is a scalar and the - array_spec has corank. - * trans-array.c (gfc_conv_array_ref): Such expressions are OK - even if the array ref codimen is zero. - * trans-expr.c (gfc_get_class_from_expr): New function taken - from gfc_get_vptr_from_expr. - (gfc_get_vptr_from_expr): Call new function. - * trans-stmt.c (trans_associate_var): If one of these is a - target expression, extract the class expression from the target - and copy its fields to a new target variable. - * trans.h : Add prototype for gfc_get_class_from_expr. - -2019-09-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> - - PR fortran/91802 - * decl.c (attr_decl1): Return MATCH_ERROR without free to avoid - bad expression type in free_expr0() ICE in rank+corank check. - -2019-09-28 Steven G. Kargl <kargl@gcc.ngu.org> - - PR fortran/91802 - * decl.c (attr_decl1): Check if rank+corank > 15. - -2019-09-28 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91864 - * gcc/fortran/io.c (match_io_element): An inquiry parameter cannot be - read into. - * gcc/fortran/match.c (gfc_match_allocate): An inquiry parameter - can be neither an allocate-object nor stat variable. - (gfc_match_deallocate): An inquiry parameter cannot be deallocated. - -2019-09-26 Alessandro Fanfarillo <afanfa@gcc.gnu.org> - - * trans-array.c (structure_alloc_comps): - Add new enum item for BCAST_ALLOC_COMP. - New argument for structure_alloc_comp, and new case to handle - recursive components in derived types. - * trans-array.c (gfc_bcast_alloc_comp): New function - used to handleco_broadcast for allocatable components - of derived types. - * trans-array.h: Add gfc_bcast_alloc_comp - * trans-intrinsics.c (conv_co_collective): Add check for - derived type variable and invocation of co_bcast_alloc_comp. - * trans.h: New data structure gfc_co_subroutines_args. - -2019-09-25 David Malcolm <dmalcolm@redhat.com> - - PR fortran/91426 - * error.c (curr_diagnostic): New static variable. - (gfc_report_diagnostic): New static function. - (gfc_warning): Replace call to diagnostic_report_diagnostic with - call to gfc_report_diagnostic. - (gfc_format_decoder): Colorize the text of %L and %C to match the - colorization used by diagnostic_show_locus. - (gfc_warning_now_at): Replace call to diagnostic_report_diagnostic with - call to gfc_report_diagnostic. - (gfc_warning_now): Likewise. - (gfc_warning_internal): Likewise. - (gfc_error_now): Likewise. - (gfc_fatal_error): Likewise. - (gfc_error_opt): Likewise. - (gfc_internal_error): Likewise. - -2019-09-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91729 - * match.c (gfc_match_select_rank): Initialise 'as' to NULL. - Check for a symtree in the selector expression before trying to - assign a value to 'as'. Revert to gfc_error and go to cleanup - after setting a MATCH_ERROR. - -2019-09-20 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/78260 - * openmp.c (gfc_resolve_oacc_declare): Reject all - non variables but accept function result variables. - * trans-openmp.c (gfc_trans_omp_clauses): Handle - function-result variables for remaing cases. - -2019-09-17 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91588 - * expr.c (check_inquiry): Remove extended component refs by - using symbol pointers. If a function argument is an associate - variable with a constant target, copy the target expression in - place of the argument expression. Check that the charlen is not - NULL before using the string length. - (gfc_check_assign): Remove extraneous space. - -2019-09-15 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91727 - * resolve.c (conformable_arrays): If array-spec is NULL, then - allocate-object is a scalar. a conformability check only occurs - for an array source-expr. - -2019-09-15 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91550 - * frontend-passes.c (do_subscript): If step equals - zero, a previuos error has been reported; do nothing - in this case. - * resolve.c (gfc_resolve_iterator): Move error checking - after type conversion. - -2019-09-14 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91557 - PR fortran/91556 - * frontend-passes.c (check_externals_procedure): Reformat argument - list. Use gfc_compare_actual_formal instead of gfc_procedure_use. - * gfortran.h (gfc_symbol): Add flag error. - * interface.c (gfc_compare_interfaces): Reformat. - (argument_rank_mismatch): Add where_formal argument. If it is - present, note that the error is between different calls. - (compare_parameter): Change warnings that previously dependended - on -Wargument-mismatch to unconditional. Issue an error / warning - on type mismatch only once. Pass where_formal to - argument_rank_mismatch for artificial variables. - (compare_actual_formal): Change warnings that previously - dependeded on -Wargument-mismatch to unconditional. - (gfc_check_typebound_override): Likewise. - (gfc_get_formal_from_actual_arglist): Set declared_at for - artificial symbol. - * invoke.texi: Extend description of -fallow-argument-mismatch. - Delete -Wargument-mismatch. - * lang.opt: Change -Wargument-mismatch to do-nothing option. - * resolve.c (resolve_structure_cons): Change warnings that - previously depended on -Wargument-mismatch to unconditional. - * trans-decl.c (generate_local_decl): Do not warn if the symbol is - artificial. - -2019-09-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91566 - * simplify.c (gfc_simplify_merge): Need to simplify expression - after insertation of parenthesis. - -2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> - - PR fortran/91716 - * trans-array.c (gfc_conv_array_initializer): Always assign the - array type of the field to the string constant. - -2019-09-13 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91717 - * dependency.c (gfc_dep_resolver): Flag identical components - and exit with return value 1 if set and no array refs. - -2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91553 - * simplify.c (gfc_convert_constant): During conversion check if the - constant is enclosed in parenthesis, and simplify expression. - -2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91642 - * io.c (gfc_match_inquire): null() cannot be in an iolength inquire - list. - -2019-09-05 Harald Anlauf <anlauf@gmx.de> - - PR fortran/91496 - * parse.c (parse_executable): Improve error messages for - improperly placed pragmas not preceeding a loop. - -2019-09-05 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91660 - * decl.c (gfc_match_decl_type_spec): Improve and restore error - message for malformed types-spec. - -2019-09-04 Steven G. Kargl <kargl@gcvc.gnu.org> - - PR fortran/91650 - * io.c (match_io_element): An output IO list item cannot be a BOZ. - -2019-09-03 Steven G. Kargl <kargl@gcc.gnu.org> - - * gfortran.texi: Update documentation to catch up with BOZ changes. - * invoke.texi: Fix English from previous BOZ changes commit. - -2019-09-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91589 - * primary.c (gfc_match_varspec): Return MATCH_NO on an apparent - component ref, when the primary type is intrinsic. - -2019-09-02 Steven G. Kargl <kargl@gc.gnu.org> - - PR fortran/91552 - * array.c (walk_array_constructor): New function. - (gfc_match_array_constructor): Use it. - -2019-09-01 Paul Thomas <pault@gcc.gnu.org> - - * array.c (spec_dimen_size): Check for the presence of - expressions for the bounds. - * decl.c (gfc_match_end): Add case COMP_SELECT_RANK. - * dump-parse-tree.c(show_symbol): Show the arrayspec of class - entities. - (show_code_node): Show the code for SELECT_RANK. - * expr.c (gfc_check_vardef_context): Omit the context of - variable definition for select rank associate names since the - ASSUMED RANK throws. - * gfortran.h : Add ST_SELECT_RANK and ST_RANK to enum - gfc_statement. Add select_rank_temporary to symbol attribute - structure. Add EXEC_SELECT_RANK to enum gfc_exec_op. - * match.c (match_exit_cycle): Add COMP_SELECT_RANK. - (copy_ts_from_selector_to_associate): Add as special case for - assumed rank class variables. - (select_intrinsic_set_tmp): Clean up the code by using symbols - for references to the temporary and the selector. - (select_type_set_tmp): Ditto. - (select_rank_set_tmp): New function. - (gfc_match_select_rank): New function. - (gfc_match_rank_is): New function. - * match.h : Add prototypes for gfc_match_select_rank and - gfc_match_rank_is. - * parse.c (decode_statement): Attempt to match select_rank and - rank statements. - (next_statement, gfc_ascii_statement): Add ST_SELECT_RANK. - (parse_select_rank_block): New function. - (parse_executable): Parse select rank block for ST_SELECT_RANK. - * parse.h : Add COMP_SELECT_RANK to enum gfc_compile_state. - * resolve.c (resolve_variable): Exclude select_rank_temporaries - from the check on use of ASSUMED RANK. - (gfc_resolve_expr): Make sure that unlimited polymorphic select - rank temporaries expressions are not resolved again after being - successfully resolved. - (resolve_assoc_var): Do not do the rank check for select rank - temporaries. - (resolve_select_rank): New function. - (gfc_resolve_blocks): Deal with case EXEC_SELECT_RANK. - (resolve_symbol): Exclude select rank temporaries for check on - use of ASSUMED RANK. - * st.c (gfc_free_statement): Include EXEC_SELECT_RANK. - * trans-array.c (gfc_conv_array_ref): Select rank temporaries - may have dimen == 0. - (gfc_conv_expr_descriptor): Zero the offset of select rank - temporaries. - * trans-stmt.c (copy_descriptor): New function. - (trans_associate_var): Add code to associate select rank temps. - (gfc_trans_select_rank_cases): New function. - (gfc_trans_select_rank): New function. - * trans-stmt.h : Add prototype for gfc_trans_select_rank. - trans.c (trans_code): Add select rank case. - -2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91587 - * io.c (match_filepos): MATCH_ERROR should branch to a syntax error. - -2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91551 - * intrinsic.c (sort_actual): ALLOCATED has one argument. Check for - no argument case. - -2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91565 - * simplify.c (gfc_simplify_reshape): Add additional checks of the - ORDER dummy argument. - -2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91564 - * check.c (gfc_check_kill_sub): Additional checks on status dummy - argument. - -2019-08-28 Mark Eggleston <mark.eggleston@codethink.com> - - * intrinsics.text: Corrected stated standard for intrinsics - and specific intrinsics where necessary. Also in C_SIZEOF the - printed value is T not .TRUE.. In IPARITY example wrap BOZ - constants in calls to INT. - -2019-08-27 Harald Anlauf <anlauf@gmx.de> - - PR fortran/91496 - * gfortran.h: Extend struct gfc_iterator for loop annotations. - * array.c (gfc_copy_iterator): Copy loop annotations by IVDEP, - VECTOR, and NOVECTOR pragmas. - * decl.c (gfc_match_gcc_ivdep, gfc_match_gcc_vector) - (gfc_match_gcc_novector): New matcher functions handling IVDEP, - VECTOR, and NOVECTOR pragmas. - * match.h: Declare prototypes of matcher functions handling IVDEP, - VECTOR, and NOVECTOR pragmas. - * parse.c (decode_gcc_attribute, parse_do_block) - (parse_executable): Decode IVDEP, VECTOR, and NOVECTOR pragmas; - emit warning for unrecognized pragmas instead of error. - * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add code to - emit annotations for IVDEP, VECTOR, and NOVECTOR pragmas. - * gfortran.texi: Document IVDEP, VECTOR, and NOVECTOR pragmas. - -2019-08-27 Mark Eggleston <mark.eggleston@codethink.com> - - * invoke.texi: Ensure that the option lists fit within the - margins of a PDF page. Re-worded description of - '-ffrontend-loop-interchange' so that it fits with the margins - of a PDF page. Add '-fdec-include', '-fdec-blank-format-item' - and '-fdec-format-defaults' to list of options that are enabled - by '-fdec'. - -2019-08-26 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91390 - PR fortran/91473 - * frontend-passes.c (gfc_check_externals): Make - gfc_errors_to_warnings conditional on -fallow-argument-mismatch. - * invoke.texi: Document -fallow-argument-mismatch. - * lang.opt: Add -fallow-argument-mismatch. - -2019-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91390 - PR fortran/91519 - * frontend-passes.c (check_externals_procedure): New - function. If a procedure is not in the translation unit, create - an "interface" for it, including its formal arguments. - (check_externals_code): Use check_externals_procedure for common - code with check_externals_expr. - (check_externals_expr): Vice versa. - * gfortran.h (gfc_get_formal_from_actual-arglist): New prototype. - (gfc_compare_actual_formal): New prototype. - * interface.c (compare_actual_formal): Rename to - (gfc_compare_actual_formal): New function, make global. - (gfc_get_formal_from_actual_arglist): Make global, and move here from - * trans-types.c (get_formal_from_actual_arglist): Remove here. - (gfc_get_function_type): Use gfc_get_formal_from_actual_arglist. - -2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> - - * intrinsics.text: References in 'See also:' are now on - separate lines to ensure that they always fit in the margins of - a PDF page. The column widths of tables have been adjusted - where necessary to prevent overlapping text. All program - examples now fit within the margins of a PDF page. - -2019-08-23 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/91283 - * options.c (gfc_post_options): Set flag_excess_precision instead of - flag_excess_precision_cmdline. Remove comment. - -2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> - - * intrinsics.text: Removed empty sections. The order of - sections for each intrinsic is now consistent throughout. - Stray words removed. Text in the wrong section moved. - Missing standard statement inserted. - -2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> - - * intrinsics.text: Correct the return types for ZABS and CDABS. - -2019-08-22 Steven G. Kargl <kargl@gcc.gnu.org> - - * intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in - co_broadcast, co_max, co_min, co_reduce, and co_sum. - -2019-08-20 Mark Eggleston <mark.eggleston@codethink.com> - - PR fortran/89236 - * intrinsic.texi: Add GNU extension notes to DIM, MOD, MODULO. - -2019-08-19 Mark Eggleston <mark.eggleston@codethink.com> - - * gfortran.texi: Delete paragraph about integer overload errors - when initialising integer variables with BOZ constants as these - no longer occur. - -2019-08-18 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91485 - module.c (gfc_match_use): User defined operator cannot conflict with - a rename symbol. - -2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/82992 - * module.c (gfc_match_use): When renaming a module entity, search - current namespace for conflicting symbol. - -2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/78739 - * match.c (gfc_match_st_function): When matching a statement function, - need to check if the statement function name shadows the function - name. - -2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/78719 - * decl.c (get_proc_name): Check for a CLASS entity when trying to - add attributes to an entity that already has an explicit interface. - -2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91471 - * primary.c (gfc_variable_attr): Remove a gfc_internal_error(), - which cannot be reached by conforming Fortran code, but seems to - be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN - case as a no-op. - -2019-08-17 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/68401 - * trans-decl.c (gfc_build_builtin_function_decls): Replace - os_error with os_error_at decl. - * trans.c (trans_runtime_error_vararg): Modify so the error - function decl is passed directly. - (gfc_trans_runtime_error): Pass correct error function decl. - (gfc_trans_runtime_check): Likewise. - (trans_os_error_at): New function. - (gfc_call_malloc): Use trans_os_error_at. - (gfc_allocate_using_malloc): Likewise. - (gfc_call_realloc): Likewise. - * trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at. - -2019-08-16 Jeff Law <law@redhat.com> - Mark Eggleston <mark.eggleston@codethink.com> - - * gfortran.h: Add gfc_check_conflict declaration. - * symbol.c (check_conflict): Rename cfg_check_conflict and remove - static. - * symbol.c (cfg_check_conflict): Remove automatic in equivalence - conflict check. - * symbol.c (save_symbol): Add check for in equivalence to stop the - the save attribute being added. - * trans-common.c (build_equiv_decl): Add is_auto parameter and - add !is_auto to condition where TREE_STATIC (decl) is set. - * trans-common.c (build_equiv_decl): Add local variable is_auto, - set it true if an atomatic attribute is encountered in the variable - list. Call build_equiv_decl with is_auto as an additional parameter. - flag_dec_format_defaults is enabled. - * trans-common.c (accumulate_equivalence_attributes) : New subroutine. - * trans-common.c (find_equivalence) : New local variable dummy_symbol, - accumulated equivalence attributes from each symbol then check for - conflicts. - -2019-08-16 Richard Biener <rguenther@suse.de> - - * trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize - forward_branch to avoid bogus uninitialized warning. - -2019-08-15 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91443 - * frontend-passes.c (check_externals_expr): New function. - (check_externals_code): New function. - (gfc_check_externals): New function. - * gfortran.h (debug): Add prototypes for gfc_symbol * and - gfc_expr *. - (gfc_check_externals): Add prototype. - * interface.c (compare_actual_formal): Do not complain about - alternate returns if the formal argument is optional. - (gfc_procedure_use): Handle cases when an error has been issued - previously. Break long line. - * parse.c (gfc_parse_file): Call gfc_check_externals for all - external procedures. - * resolve.c (resolve_global_procedure): Remove checking of - argument list. - -2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/87991 - * resolve.c (check_data_variable): data-stmt-object with pointer - attribute requires a data-stmt-value with the target attribute. - -2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/88072 - * misc.c (gfc_typename): Do not point to something that ought not to - be pointed at. - -2013-08-13 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90563 - * frontend-passes.c (insert_index): Suppress errors while - simplifying the resulting expression. - -2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/89647 - resolve.c (resolve_typebound_procedure): Allow host associated - procedure to be a binding target. While here, wrap long line. - -2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/87993 - * expr.c (gfc_simplify_expr): Simplifcation of an array with a kind - type inquiry suffix yields a constant expression. - -2019-08-13 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/91414 - * check.c (gfc_check_random_seed): Reduce seed_size. - * intrinsic.texi (RANDOM_NUMBER): Update to match new PRNG. - -2019-08-12 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/91424 - * frontend-passes.c (do_subscript): Do not warn for an - expression a second time. Do not warn about a zero-trip loop. - (doloop_warn): Also look at contained namespaces. - -2019-08-11 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/91413 - * invoke.texi (-fmax-stack-var-size): Document increased default. - * options.c (gfc_post_options): Increase default stack var size to - 65536 bytes. - * trans-decl.c (gfc_finish_var_decl): Generate warning when local - array moved to static storage. - -2019-08-10 Steven G. Kargl <kargl@gcc.gnu.org> - - * decl.c (match_old_style_init): Use a clearer error message. - * expr.c (gfc_check_assign): Update BOZ checking to provide a stricter - adherence to the Fortran standard. Use gfc_invalid_boz () to - relax errors into warnings. - * gfortran.h (gfc_isym_id): Add new ids GFC_ISYM_DFLOAT, - GFC_ISYM_FLOAT, GFC_ISYM_REALPART, and GFC_ISYM_SNGL - * intrinsic.c (add_functions): Use new ids to split REAL generic into - REAL, FLOAT, DFLOAT, SNGL, and REALPART generics. - (gfc_intrinsic_func_interface): Allow new intrinsics in an - initialization expression - * resolve.c (resolve_operator): Deal with BOZ as operands. - Use gfc_invalid_boz to allow for errors or warnings via the - -fallow-invalid-boz option. A BOZ cannot be an operand to an - unary operator. Both operands of a binary operator cannot be BOZ. - For binary operators, convert a BOZ operand into the type and - kind of the other operand for REAL or INTEGER operand. - * trans-intrinsic.c: Use new ids to cause conversions to happen. - -2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91359 - * trans-decl.c (gfc_generate_return): Ensure something is returned - from a function. - -2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/42546 - * check.c(gfc_check_allocated): Add comment pointing to ... - * intrinsic.c(sort_actual): ... the checking done here. - -2019-08-05 Steven g. Kargl <kargl@gcc.gnu.org> - - PR fortran/91372 - * decl.c (gfc_match_data): Allow an implied do-loop to nestle against - DATA. - -2019-08-04 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/88227 - * check.c (oct2bin): New function. Convert octal string to binary. - (hex2bin): New function. Convert hexidecimal string to binary. - (bin2real): New function. Convert binary string to REAL. Use - oct2bin and hex2bin. - (gfc_boz2real): Use fallback conversion bin2real. - -2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90985 - * decl.c (gfc_match_data): In free-form code, DATA be followed by - whitespace. - -2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90986 - * match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed - by '('. - -2019-07-30 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/91296 - * interface.c (compare_actual_expr): When checking for aliasing, add - a case to handle REF_INQUIRY (e.g., foo(x%re, x%im) do not alias). - -2019-07-29 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90813 - * dump-parse-tree.c (show_global_symbol): New function. - (gfc_dump_global_symbols): New function. - * gfortran.h (gfc_traverse_gsymbol): Add prototype. - (gfc_dump_global_symbols): Likewise. - * invoke.texi: Document -fdump-fortran-global. - * lang.opt: Add -fdump-fortran-global. - * parse.c (gfc_parse_file): Handle flag_dump_fortran_global. - * symbol.c (gfc_traverse_gsymbol): New function. - * trans-decl.c (sym_identifier): New function. - (mangled_identifier): New function, doing most of the work - of gfc_sym_mangled_identifier. - (gfc_sym_mangled_identifier): Use mangled_identifier. Add mangled - identifier to global symbol table. - (get_proc_pointer_decl): Use backend decl from global identifier - if present. - -2019-07-25 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/65819 - * dependency.h (gfc_dep_resovler): Add optional argument identical. - * dependency.c (gfc_check_dependency): Do not alway return 1 if - the symbol is the same. Pass on identical to gfc_dep_resolver. - (gfc_check_element_vs_element): Whitespace fix. - (gfc_dep_resolver): Adjust comment for function. If identical is - true, return 1 if any overlap has been found. - -2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/54072 - * check.c (gfc_invalid_boz): Fix comment. - (illegal_boz_arg): New function. - (gfc_check_transfer): Use to arguments. - (gfc_check_storage_size): Ditto. - (gfc_check_complex): Remove leftover comment from BOZ patch. - * primary.c (match_boz_constant): Remove leftover comment. - -2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> - - * arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): - Move to ... - * primary.c (convert_integer, convert_real, convert_complex): ... here. - Rename and make static functions. - (match_integer_constant): Use convert_integer - (match_real_constant): Use convert_real. - (match_complex_constant: Use convert_complex. - * arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): - Remove prototypes. - * array.c (match_array_cons_element): A BOZ cannot be a data - statement value. Jump to a common exit point. - * check.c (gfc_invalid_boz): New function. Emit error or warning - for a BOZ in an invalid context. - (boz_args_check): Move to top of file to prevent need of forward - declaration. - (is_boz_constant): New function. Check that BOZ expr is constant. - (gfc_boz2real): New function. In-place conversion of BOZ literal - constant to REAL in accordance to F2018. - (gfc_boz2int): New function. In-place conversion of BOZ literal - constant to INTEGER in accordance to F2018. - (gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz. Convert BOZ - as needed. - (gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE, - BGT, BLE, and BLT intrinsic functions. - (gfc_check_cmplx): Re-organize to check kind, if present, first. - Convert BOZ real and/or imaginary parts as needed in accordance to - F2018. - (gfc_check_complex): Use gfc_invalid_boz. Convert BOZ as needed. - (gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed. - (gfc_check_dshift): Make dshift[lr] conform to F2018 standard. - gfc_check_float (gfc_expr *a) - (gfc_check_iand_ieor_ior): Make IAND, IEOR, and IOR conform to - F2018 standard. - (gfc_check_int): Conform to F2018 standard. - (gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and - INT. Simply return for a BOZ argument. See gfc_simplify_intconv. - (gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018 - standard. - (gfc_check_real): Remove incorrect comment. Check kind, if present, - first. Simply return for a BOZ argument. See gfc_simplify_real. - (gfc_check_and): Re-do error handling for BOZ arguments. Remove - special casing ts.type != BT_INTEGER or BT_LOGICAL. - * decl.c (match_old_style_init): Check for BOZ in old-style - initialization. Issue error or warning depending on - -fallow-invalid-boz option. Issue error if variable is not an - INTEGER or REAL and the value is BOZ. - * expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr. - (gfc_check_assign): Re-do error handling for a BOZ in an assignment - statement. Do in-place conversion of RHS based on LHS type of - INTEGER or REAL. - * gfortran.h (gfc_expr): Add a boz component. Remove is_boz component. - (gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes. - * interface.c (gfc_extend_assign): Guard against replacing an - intrinsic involving a BOZ literal constant on RHS. - * invoke.texi: Doument -fallow-invalid-boz. - * lang.opt: New option. -fallow-invalid-boz. - * libgfortran.h (bt): Elevate BOZ to a basic type. - * misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ. - * primary.c (convert_integer, convert_real, convert_complex): to here. - Rename and make static functions. - * primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do - error handling. Deprecate 'X' for hexidecimal and postfix notation. - Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code. - * resolve.c (resolve_ordinary_assign): Rework a RHS that is a - BOZ literal constant. Use gfc_invalid_boz to allow previous - nonstandard behavior. Remove range checking of BOZ conversion. - * simplify.c (convert_boz): Remove function. - (simplify_cmplx): Remove conversion of BOZ constants, because - conversion is done in gfc_check_cmplx. - (gfc_simplify_float): Remove conversion of BOZ constant, because - conversion is done in gfc_check_float. - (simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER. - Remove range checking for BOZ conversion. - (gfc_simplify_real): Use k, if present, to determine kind. Convert - BOZ to REAL. Remove range checking for BOZ conversion. - target-memory.c (gfc_convert_boz): Rewrite to deal with convert of - a BOZ to a REAL value. - -2019-07-21 Thomas König <tkoenig@gcc.gnu.org> - - PR libfortran/91030 - * gfortran.texi (GFORTRAN_FORMATTED_BUFFER_SIZE): Document - (GFORTRAN_UNFORMATTED_BUFFER_SIZE): Likewise. - -2019-07-16 Harald Anlauf <anlauf@gmx.de> - - PR fortran/90903 - * libgfortran.h: Add mask for -fcheck=bits option. - * options.c (gfc_handle_runtime_check_option): Add option "bits" - to run-time checks selectable via -fcheck. - * trans-intrinsic.c (gfc_conv_intrinsic_btest) - (gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits) - (gfc_conv_intrinsic_shift, gfc_conv_intrinsic_ishft) - (gfc_conv_intrinsic_ishftc): Implement run-time checks for the - POS, LEN, SHIFT, and SIZE arguments. - * gfortran.texi: Document run-time checks for bit manipulation - intrinsics. - * invoke.texi: Document new -fcheck=bits option. - -2019-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/87233 - * expr.c (check_restricted): Relax constraint C1279 which was - removed from F2008 and above. - -2019-07-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/91077 - * trans-array.c (gfc_conv_scalarized_array_ref) Delete code - that gave symbol backend decl for subref arrays and deferred - length variables. - -2019-07-05 Andrew Stubbs <ams@codesourcery.com> - - * openmp.c (resolve_omp_clauses): Add custom error messages for - parameters in map clauses. - -2019-07-03 Martin Liska <mliska@suse.cz> - - * check.c (gfc_check_c_funloc): Remove - dead assignemts. - * decl.c (variable_decl): Likewise. - * resolve.c (resolve_typebound_function): Likewise. - * simplify.c (gfc_simplify_matmul): Likewise. - (gfc_simplify_scan): Likewise. - * trans-array.c (gfc_could_be_alias): Likewise. - * trans-common.c (add_equivalences): Likewise. - * trans-expr.c (trans_class_vptr_len_assignment): Likewise. - (gfc_trans_array_constructor_copy): Likewise. - (gfc_trans_assignment_1): Likewise. - * trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise. - * trans-openmp.c (gfc_omp_finish_clause): Likewise. - * trans-types.c (gfc_get_array_descriptor_base): Likewise. - * trans.c (gfc_build_final_call): Likewise. - -2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90987 - * gfortran.dg/common_1.f: new test. - * gfortran.dg/common_26.f90: Ditto. - -2019-06-26 Steven G. Kargl <kargl@gcc.gnu.org> - - PR Fortran/90988 - ChangeLog forgotten with revision 272667 - * decl.c (access_attr_decl): Use temporary variable to reduce - unreadability of code. Normalize jumping to return. - (gfc_match_protected): Fix parsing error. Add comments to - explain code. Remove dead code. - (gfc_match_private): Use temporary variable to reduce unreadability - of code. Fix parsing error. Move code to test for blank PRIVATE. - Remove dead code. - (gfc_match_public): Move code to test for blank PUBLIC. Fix - parsing error. Remove dead code. - -2019-06-24 Jan Hubicka <jh@suse.cz> - - * trans-expr.c (gfc_conv_substring): Check that - type is array or integer prior checking string flag. - (gfc_conv_string_parameter): Likewise. - * trans-openmp.c (gfc_omp_scalar_p): Likewise. - * trans.c (gfc_build_array_ref): Likewise. - -2019-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/89782 - * io.c (gfc_resolve_dt): Check that internal units are not - character PARAMETER. - -2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/67884 - * resolve.c (deferred_requirements) : Check only the result variable. - (resolve_fl_procedure): Check deferred requirements on functions. - -2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/51991 - * decl.c (gfc_match_save): If SAVE was not seen, return MATCH_NO - instead issuing an error message and returning MATCH_ERROR. - -2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/77632 - * /decl.c (variable_decl): Mark a variable that is a target in pointer - initialization when in PROGRAM, MODULE, or SUBMODULE scope with an - implicit save. - -2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/86587 - * symbol.c (verify_bind_c_derived_type): Remove erroneous error - checking for BIND(C) and PRIVATE attributes. - -2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90937 - * trans-types.c (get_formal_from_actual_arglist): Get symbol from - current namespace so it will be freed later. If symbol is of type - character, get an empty character length. - -2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/69499 - * match.c (gfc_match_select_type): SELECT TYPE is an executable - statement, and cannot appear in MODULE or SUBMODULE scope. - -2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/69398 - * decl.c (attr_decl): Check for duplicate DIMENSION attribute for a - CLASS entity. - -2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/87907 - * resolve.c (resolve_contained_fntype): Do not dereference a NULL - pointer. - -2019-06-19 Jim MacArthur <jim.macarthur@codethink.co.uk> - Mark Eggleston <mark.eggleston@codethink.com> - - PR fortran/89103 - * gfortran.texi: Add -fdec-blank-format-item - * invoke.texi: Add option to list of options. - * invoke.texi: Add to section on Commas in FORMAT specifications. - * io.c (check_format): At FMT_RPAREN goto finished if - -fdec-blank-format-item otherwise set error string. - * lang.opt: Add new option. - * options.c (set_dec_flags): Add SET_BITFLAG for - flag_dec_format_defaults. - -2019-06-18 Julian Brown <julian@codesourcery.com> - - PR fortran/90921 - * trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses - before scanning each namespace. - -2019-06-18 Thomas Schwinge <thomas@codesourcery.com> - - PR fortran/85221 - * trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare' - directive. - -2019-06-16 Thomas Koenig <tkoenig@gcc.gnu.org> - - * dump_parse_tree (debug): Add verison for formal arglist. - Do not crash when a gfc_expr is NULL. - -2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org> - - * decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived - type. - -2019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> - - * arith.c (arith_power): Rework overflow of an integer to an integer - exponent. - -2019-06-14 Harald Anlauf <anlauf@gmx.de> - - PR fortran/90577 - PR fortran/90578 - * trans-intrinsic.c (gfc_conv_intrinsic_shift): Properly - distinguish logical/arithmetic shifts. - * intrinsic.texi: Update documentation for SHIFTR/SHIFTL/SHIFTA - (Fortran 2008) and LSHIFT/RSHIFT (GNU extensions). - -2019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/89646 - * dependency.c (gfc_check_argument_var_dependency): Suppress spurious - warnings by comparing variable names. - -2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/68544 - * resolve.c (is_dt_name): New function to compare symbol name against - list of derived types. - (resolve_actual_arglist): Use it to find wrong code. - -2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/89344 - * expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable - in SELECT TYPE construct. - -2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/88810 - * dependency.c (gfc_dep_resolver): Re-arrange code to make the logic - a bit more transparent. Fix 2 nearby formatting issues. - -2019-06-13 Jakub Jelinek <jakub@redhat.com> - - * io.c (check_format): Use G_(...) instead of _(...) for error values, - append " in format string at %L" to all strings but unexpected_element, - use error as gfc_error formating string instead of - "%s in format string at %L". Formatting fixes. - -2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> - - * gfortran.h (gfc_free_dt_list): Remove prototype. - -2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90002 - * array.c (gfc_free_array_spec): When freeing an array-spec, avoid - an ICE for assumed-shape coarrays. - -2019-06-08 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/90786 - * trans-expr.c (pointer_assignment_is_proc_pointer) Remove as - it is very simple and only called from one place. - (gfc_trans_pointer_assignment): Rename non_proc_pointer_assign - as non_proc_ptr_assign. Assign to it directly, rather than call - to above, deleted function and use gfc_expr_attr instead of - only checking the reference chain. - -2019-06-08 Thomas Koenig <tkoenig@gcc.gnu.org> - Tomáš Trnka <trnka@scm.com> - - PR fortran/90744 - * trans-types.c (get_formal_from_actual_arglist): Unset typespec - flags which make no sense for procedures without explicit - interface. - -2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90539 - * trans-expr.c (gfc_conv_subref_array_arg): If the size of the - expression can be determined to be one, treat it as contiguous. - Set likelyhood of presence of an actual argument according to - PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous - according to PRED_FORTRAN_CONTIGUOUS. - -2019-05-30 Thomas Koenig <tkoenig@gcc.gnu.org> - - * gfc-internals.texi (Translating to GENERIC): New chapter. - -2019-05-30 Marek Polacek <polacek@redhat.com> - - * lang.opt (ftail-call-workaround): Fix a typo. - -2019-05-30 Jakub Jelinek <jakub@redhat.com> - - * lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths. - -2019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90539 - * gfortran.h (gfc_has_dimen_vector_ref): Add prototype. - * trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous. - (gfc_conv_is_contiguous_expr): Add prototype. - * frontend-passes.c (has_dimen_vector_ref): Remove prototype, - rename to - (gfc_has_dimen_vector_ref): New function name. - (matmul_temp_args): Use gfc_has_dimen_vector_ref. - (inline_matmul_assign): Likewise. - * trans-array.c (gfc_conv_array_parameter): Also check for absence - of a vector subscript before calling gfc_conv_subref_array_arg. - Pass additional argument to gfc_conv_subref_array_arg. - * trans-expr.c (gfc_conv_subref_array_arg): Add argument - check_contiguous. If that is true, check if the argument - is contiguous and do not repack in that case. - * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split - away most of the work into, and call - (gfc_conv_intrinsic_is_coniguous_expr): New function. - -2019-05-29 Jakub Jelinek <jakub@redhat.com> - - PR fortran/90329 - * lang.opt (fbroken-callers): Remove. - (ftail-call-workaround, ftail-call-workaround=): New options. - * gfortran.h (struct gfc_namespace): Add implicit_interface_calls. - * interface.c (gfc_procedure_use): Set implicit_interface_calls - for calls to implicit interface procedures. - * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround - instead of flag_broken_callers. If it is not 2, also require - sym->ns->implicit_interface_calls. - * invoke.texi (fbroken-callers): Remove documentation. - (ftail-call-workaround, ftail-call-workaround=): Document. - -2019-05-26 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90539 - * trans-types.c (get_formal_from_actual_arglist): Set rank - and lower bound for assumed size arguments. - -2019-05-22 Andrew Stubbs <ams@codesourcery.com> - - * trans-stmt.c (gfc_trans_critical): Use size_type_node for - gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls. - (gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all - call. - -2019-05-22 Jeff Law <law@redhat.com> - Mark Eggleston <mark.eggleston@codethink.com> - - PR fortran/89100 - * gfortran.texi: Add Default widths for F, G and I format - descriptors to Extensions section. - * invoke.texi: Add -fdec-format-defaults - * io.c (check_format): Use default widths for i, f and g when - flag_dec_format_defaults is enabled. - * lang.opt: Add new option. - * options.c (set_dec_flags): Add SET_BITFLAG for - flag_dec_format_defaults. - -2019-05-21 Janne Blomqvist <jb@gcc.gnu.org> - - PR libfortran/90038 - * intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new - wait=.false. implementation. - -2019-05-20 Mark Eggleston <markeggleston@codethink.com> - - * gfortran.texi: Remove reference to the ASSIGN statement, capitalise - complex, state that padding is with spaces and modify the Hollerith - constant examples. - -2019-05-19 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/90498 - * trans-stmt.c (trans_associate_var) Do not use the saved - descriptor if the expression is a COMPONENT_REF. - -2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90329 - * invoke.texi: Document -fbroken-callers. - * lang.opt: Add -fbroken-callers. - * trans-decl.c (create_function_arglist): Only set - DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set. - -2019-05-17 Thomas Schwinge <thomas@codesourcery.com> - - PR fortran/89433 - * f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp - declare target". - * trans-decl.c (add_attributes_to_decl): Refer to OpenACC - 'routine' clauses from "omp declare target" attribute. - -2019-05-16 Martin Sebor <msebor@redhat.com> - - * gfortranspec.c (append_arg): Spell out the word "argument." - -2019-05-16 Jakub Jelinek <jakub@redhat.com> - - PR fortran/90329 - * trans-decl.c (create_function_arglist): Set - DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if - len is constant. - -2019-05-15 Janne Blomqvist <jb@gcc.gnu.org> - - * parse.c (gfc_parse_file): Remove translation string markers. - -2019-05-12 Janne Blomqvist <jb@gcc.gnu.org> - - * dump-parse-tree.c (get_c_type_name): Use macros for complex type - names. - * parse.c (gfc_parse_file): Define complex macros, add CPP support - when printing C prototypes. - -2019-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/61968 - * interface.c (compare_actual_formal): Do not create a vtab if - the actual argument is assumed type. - -2019-05-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/90093 - * trans-decl.c (convert_CFI_desc): Test that the dummy is - present before doing any of the conversions. - - PR fortran/90352 - * decl.c (gfc_verify_c_interop_param): Restore the error for - charlen > 1 actual arguments passed to bind(C) procs. - Clean up trailing white space. - - PR fortran/90355 - * trans-array.c (gfc_trans_create_temp_array): Set the 'span' - field to the element length for all types. - (gfc_conv_expr_descriptor): The force_no_tmp flag is used to - prevent temporary creation, especially for substrings. - * trans-decl.c (gfc_trans_deferred_vars): Rather than assert - that the backend decl for the string length is non-null, use it - as a condition before calling gfc_trans_vla_type_sizes. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp' - is set before calling gfc_conv_expr_descriptor. - * trans.c (get_array_span): Move the code for extracting 'span' - from gfc_build_array_ref to this function. This is specific to - descriptors that are component and indirect references. - * trans.h : Add the force_no_tmp flag bitfield to gfc_se. - -2019-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/90351 - PR fortran/90329 - * dump-parse-tree.c: Include version.h. - (gfc_dump_external_c_prototypes): New function. - (get_c_type_name): Select "char" as a name for a simple char. - Adjust to handling external functions. Also handle complex. - (write_decl): Add argument bind_c. Adjust for dumping of external - procedures. - (write_proc): Likewise. - (write_interop_decl): Add bind_c argument to call of write_proc. - * gfortran.h: Add prototype for gfc_dump_external_c_prototypes. - * lang.opt: Add -fc-prototypes-external flag. - * parse.c (gfc_parse_file): Move dumping of BIND(C) prototypes. - Call gfc_dump_external_c_prototypes if option is set. - * invoke.texi: Document -fc-prototypes-external. - -2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90290 - * match.c (gfc_match_stopcode): Check F2008 condition on stop code. - -2019-05-01 Andrew Benson <abensonca@gmail.com> - - * module.c (write_module): Initialize module_column before writing - module to ensure line break occurs at correct column. - -2019-05-01 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/60144 - * match.c (gfc_match_parens): Change the location for missing ')'. - (gfc_match_if): Detect a missing '('. Remove the spurious named - constant error. Change the wording of some errors. - (gfc_match_else): Change the wording of an error. - (gfc_match_elseif): Detect a missing '('. Improve the matching - process to get a better syntax analysis. - -2019-04-19 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/90166 - * decl.c (in_module_or_interface): New function to check that the - current state is in a module, submodule, or interface. - (gfc_match_prefix): Use it. - -2019-04-22 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/57284 - * resolve.c (find_array_spec): If this is a class expression - and the symbol and component array specs are the same, this is - not an error. - *trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol - argument, has no namespace, it has come from the interface - mapping and the _data component must be accessed directly. - -2019-04-17 Thomas Schwinge <thomas@codesourcery.com> - - PR fortran/90048 - * openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for - OpenACC, too. - (gfc_resolve_oacc_blocks): Populate sharing_clauses with private - clauses. - -2019-04-14 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/89843 - * trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed - rank dummies of bind C procs require deferred initialization. - (convert_CFI_desc): New procedure to convert incoming CFI - descriptors to gfc types and back again. - (gfc_trans_deferred_vars): Call it. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI - descriptor pointer. Free the descriptor in all cases. - - PR fortran/89846 - * expr.c (is_CFI_desc): New function. - (is_subref_array): Tidy up by referencing the symbol directly. - * gfortran.h : Prototype for is_CFI_desc. - * trans_array.c (get_CFI_desc): New function. - (gfc_get_array_span, gfc_conv_scalarized_array_ref, - gfc_conv_array_ref): Use it. - * trans.c (get_array_span): Extract the span from descriptors - that are indirect references. - - PR fortran/90022 - * trans-decl.c (gfc_get_symbol_decl): Make sure that the se - expression is a pointer type before converting it to the symbol - backend_decl type. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate - temporary creation for intent(in). - -2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/79842 - * module.c (gfc_use_module): use complete sentences. - -2019-04-11 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR translation/89939 - * frontend-passes.c (B_ERROR): Delete macro. - (C_ERROR): Delete macro. - (B_ERROR_1): New macro. - (C_ERROR_1): New macro. - (C_ERROR_2): New macro. - (inline_matmul_assign): Use new macros. - (call_external_blas): Likewise. - -2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/87352 - * gfortran.h (gfc_component): Add finalized field. - * class.c (finalize_component): If the component is already - finalized, return early. Set component->finalized on exit. - -2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/89981 - * resolve.c (resolve_global_procedure): If the global symbol is an - ENTRY, also look up its name among the entries. - -2019-04-04 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89904 - * check.c (gfc_check_transfer): Reject procedures as actual - arguments for SOURCE and MOLD of TRANSFER intrinsic. - -2019-04-03 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/68567 - * expr.c (gfc_reduce_init_expr): Add extra check to avoid - dereferencing a null pointer. - -2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/89375 - * expr.c (comp_pointer): Remove redundant condition. - -2019-03-31 Harald Anlauf <anlauf@gmx.de> - - PR fortran/83515 - PR fortran/85797 - * trans-types.c (gfc_typenode_for_spec): Handle conversion for - procedure pointers. - * target-memory.c (gfc_element_size): Handle size determination - for procedure pointers. - -2019-03-31 Thomas Koenig <tkoenig@gcc.gnu.org> - - * dump-parse-tree.c (debug): Add for symbol_attribute *, - symbol_attribute and gfc_ref * arguments. - -2019-03-30 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/89841 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal - argument attributes rather than those of the actual argument. - - PR fortran/89842 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call - 'set_dtype_for_unallocated' for any type of arrayspec. - -2019-03-27 Janus Weil <janus@gcc.gnu.org> - - PR fortran/85537 - * expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures - in procedure pointer initialization. - -2019-03-27 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88247 - * expr.c (is_subref_array): Permit substrings to be detected - as subref arrays. - * trans-array.c (get_array_ctor_var_strlen): Obtain the length - of deferred length strings. Handle substrings with a NULL end - expression. - (trans_array_constructor): Remove an unnecessary blank line. - (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl' - is a pointer array. - (get_array_charlen): If the expression is an array, convert the - first element of the constructor and use its string length. Get - a new charlen if necessary. - (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array - constructor expressions. If the ss_info string length is - available, use that to set the span of character arrays. - * trans-expr.c (gfc_get_expr_charlen): Handle substrings - * trans-stmt.c (trans_associate_var): Set the pointer array - flag for variable targets and constant array constructors. Take - care not to reset the string length or the span in the case of - expressions that are not converted as direct by reference. - -2019-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - * intrinsic.texi (MINLOC): Fix typo in BACK argument documentation. - (MAXLOC): Likewise. - -2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/78865 - * interface.c (compare_actual_formal): Change errors about - missing or extra to gfc_error_now to make sure they are issued. - Change "spec" to "specifier" in message. - * resolve.c (resolve_global_procedure): Also check for mismatching - interface with global symbols if the namespace has already been - resolved. - -2019-03-21 Thomas Schwinge <thomas@codesourcery.com> - - PR fortran/72741 - * openmp.c (gfc_match_oacc_routine): Set the level of parallelism - for all variants. - (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. - - PR fortran/89773 - * gfortran.h (gfc_oacc_routine_name): Add loc member. - (gfc_resolve_oacc_routines): Declare. - * openmp.c (gfc_match_oacc_routine): Move some error checking - into... - (gfc_resolve_oacc_routines): ... this new function. - * resolve.c (resolve_codes): Call it. - - PR fortran/72741 - * openmp.c (gfc_match_oacc_routine): Clarify. - - PR fortran/72741 - * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. - (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, - AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, - AB_OACC_ROUTINE_LOP_SEQ. - (attr_bits): Add these. - (mio_symbol_attribute): Handle these. - -2019-03-20 Janus Weil <janus@gcc.gnu.org> - - PR fortran/71861 - * symbol.c (check_conflict): ABSTRACT attribute conflicts with - INTRINSIC attribute. - -2019-03-18 Thomas Koenig <tkoeng@gcc.gnu.org> - - PR fortran/68009 - * iresolve.c: Include trans.h. - (gfc_resolve_fe_runtine_error): Set backend_decl on - resolved_sym. - -2019-03-17 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/88008 - * gfortran.h (expr_t): Add EXPR_UNKNOWN. - * expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement. - (gfc_simplify_expr): Likewise. - * module.c (mio_expr): Likewise. - * resovle.c (extract_compcall_passed_object): Issue error on - unknown type. - (check_typebound_baseobject): Issue error on wrong type. - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Add - EXPR_UNKNOWN to switch statement. - -2019-03-16 Jakub Jelinek <jakub@redhat.com> - - PR fortran/89724 - * scanner.c (load_line): Remove linenum and current_line static - variables, add warned_tabs automatic variable. Use current_file->line - instead of current_line and warned_tabs boolean to avoid diagnosing - tabs multiple times on the same line. - -2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/84394 - * symbol.c (gfc_add_subroutine): If we are encountering a - subrtoutine within a BLOCK DATA and the name starts with an - underscore, do not check. - -2019-03-15 Harald Anlauf <anlauf@gmx.de> - - PR fortran/60091 - * expr.c (gfc_check_pointer_assign): Correct and improve error - messages for invalid pointer assignments. - -2019-03-14 Thomas Koenig <tkoenig@gcc.gnu.org> - - * gfortran.texi: Document Q edit descriptor under - "Extensions not implemented in GNU Fortran". - -2019-03-13 Harald Anlauf <anlauf@gmx.de> - - PR fortran/87045 - * trans-expr.c (gfc_trans_pointer_assignment): Move check for same - string length so that we do not get false errors for deferred - length. - -2019-03-13 Janus Weil <janus@gcc.gnu.org> - - PR fortran/89601 - * decl.c (gfc_match_formal_arglist): Reject empty type parameter lists. - (gfc_match_derived_decl): Mark as PDT only if type parameter list was - matched successfully. - -2019-03-13 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/66695 - PR fortran/77746 - PR fortran/79485 - * gfortran.h (gfc_symbol): Add bind_c component. - (gfc_get_gsymbol): Add argument bind_c. - * decl.c (add_global_entry): Add bind_c argument to - gfc_get_symbol. - * parse.c (parse_block_data): Likewise. - (parse_module): Likewise. - (add_global_procedure): Likewise. - (add_global_program): Likewise. - * resolve.c (resolve_common_blocks): Likewise. - (resolve_global_procedure): Likewise. - (gfc_verify_binding_labels): Likewise. - * symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c - in gsym. - * trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument - to gfc_get_symbol. - (gfc_get_extern_function_decl): If the sym has a binding label - and it cannot be found in the global symbol tabel, it is the wrong - one and vice versa. - -2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/87673 - * match.c (gfc_match_type_spec): Remove call to - gfc_resolve_expr for character length. - -2019-03-12 Martin Liska <mliska@suse.cz> - - * decl.c (add_init_expr_to_sym): Replace usage of 'can't' - with 'cannot'. - (variable_decl): Likewise. - (cray_pointer_decl): Likewise. - (match_binding_attributes): Likewise. - * f95-lang.c (gfc_init): Likewise. - * interface.c (gfc_check_typebound_override): Likewise. - * intrinsic.c (make_generic): Likewise. - * module.c (dump_module): Likewise. - (gfc_use_module): Likewise. - * primary.c (gfc_convert_to_structure_constructor): Likewise. - * resolve.c (resolve_entries): Likewise. - (check_generic_tbp_ambiguity): Likewise. - (get_checked_tb_operator_target): Likewise. - * scanner.c (load_file): Likewise. - * trans-expr.c (gfc_conv_intrinsic_to_class): Likewise. - -2019-03-12 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/89363 - PR fortran/89364 - * trans-expr.c (set_dtype_for_unallocated): New function. - (gfc_conv_gfc_desc_to_cfi_desc): Call it for allocatable and - pointer arguments. - (gfc_conv_procedure_call): Likewise. Also, set the ubound of - the final dimension to -1 for assumed rank formal args that are - associated with assumed size arrays. - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Return -1 for - the final dimension of assumed rank entities that are argument - associated with assumed size arrays. - (gfc_conv_intrinsic_shape): Likewise return -1 for the final - dimension of the shape intrinsic. - -2019-03-11 Jakub Jelinek <jakub@redhat.com> - - PR fortran/89651 - * trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING - on decl if adding COND_EXPR for allocatable. - (gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest. - -2019-03-11 Martin Liska <mliska@suse.cz> - - * decl.c (match_record_decl): Wrap an option name - in a string format message and fix GNU coding style. - (gfc_match_pointer): Likewise. - * expr.c (find_array_section): Likewise. - * intrinsic.c (gfc_is_intrinsic): Likewise. - * options.c (gfc_post_options): Likewise. - * primary.c (match_integer_constant): Likewise. - * trans-common.c (translate_common): Likewise. - -2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/66089 - * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): - Return false if a scalar tempoary is needed. - (gfc_walk_variable_expr): Fix up class refs. - -2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/87734 - * symbol.c (gfc_add_procedure): Only throw an error if the - procedure has not been declared either PUBLIC or PRIVATE. - -2019-03-09 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/71544 - * trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of - C_PTR and C_FUNPTR. - (create_fn_spec): Mark argument as escaping if ts->is_c_interop is set. - -2019-03-09 Janus Weil <janus@gcc.gnu.org> - - PR fortran/84504 - * expr.c (gfc_check_assign_symbol): Deal with procedure pointers to - pointer-valued functions. - -2019-03-09 Thomas König <tkoenig@gcc.gnu.org> - - PR fortran/71203 - * decl.c (add_init_expr_to_sym): Add shape if init has none. Add - asserts that it has to be an EXPR_ARRAY in this case. - -2019-03-08 Jakub Jelinek <jakub@redhat.com> - - PR other/80058 - * arith.c (gfc_complex2complex): Avoid two spaces in the middle of - diagnostics. - * resolve.c (resolve_allocate_expr): Likewise. - -2019-03-06 Harald Anlauf <anlauf@gmx.de> - - PR fortran/71203 - * expr.c (simplify_const_ref): Avoid null pointer dereference. - -2019-03-03 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/77583 - * symbol.c (check_conflict): Check for valid procedure name - passed to error reporting routine. - -2019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/72714 - * resolve.c (resolve_allocate_expr): Add some tests for coarrays. - -2019-03-02 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89516 - * check.c (gfc_calculate_transfer_sizes): Correct checks for cases - where storage size of elements of MOLD is 0. - -2019-02-28 Thomas Schwinge <thomas@codesourcery.com> - Cesar Philippidis <cesar@codesourcery.com> - - PR fortran/72741 - PR fortran/89433 - * openmp.c (gfc_match_oacc_routine): Handle repeated use of the - Fortran OpenACC 'routine' directive. - - PR fortran/72741 - * gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR. - * openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it. - * trans-decl.c (add_attributes_to_decl): Likewise. - - PR fortran/72741 - PR fortran/89433 - * openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols. - -2019-02-26 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89492 - * check.c (gfc_calculate_transfer_sizes): Handle cases where - storage size of elements of MOLD is 0. - -2019-02-26 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/89496 - * trans-types.c (get_formal_from_actual_arglist): If - the actual arglist has no expression, the corresponding - formal arglist is an alternate return. - -2019-02-26 Uroš Bizjak <ubizjak@gmail.com> - - * invoke.texi (-ffpe-trap): Use @var for every item in the list. - -2019-02-26 Jakub Jelinek <jakub@redhat.com> - - PR fortran/43210 - * trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead - of duplicating the initializer possibly many times. - -2019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/89174 - * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold - to arguments. If we are dealing with a MOLD, call - gfc_expr_to_initialize(). - * trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true - to gfc_find_and_cut_at_last_class_ref. - * trans.h (gfc_find_and_cut_at_last_class_ref): Add optional - argument is_mold with default false. - -2019-02-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89266 - PR fortran/88326 - * target-memory.c (gfc_element_size): Return false if element size - cannot be determined; element size is returned separately. - (gfc_target_expr_size): Return false if expression size cannot be - determined; expression size is returned separately. - * target-memory.h: Adjust prototypes. - * check.c (gfc_calculate_transfer_sizes): Adjust references to - gfc_target_expr_size, gfc_element_size. - * arith.c (hollerith2representation): Likewise. - * class.c (find_intrinsic_vtab): Likewise. - * simplify.c (gfc_simplify_sizeof): Likewise. - -2019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/84387 - * trans-io.c (transfer_expr): Do not return if there are no - components to the derived type or class. - -2019-02-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88117 - * resolve.c (deferred_op_assign): Return if the lhs expression - has the pointer attribute. - * trans-expr.c (gfc_trans_assignment_1): Do not fix the string - length if the lhs expression has the pointer attribute. - -2019-02-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/89385 - PR fortran/89366 - * decl.c (gfc_verify_c_interop_param): Restriction on string - length being one is lifted for F2018. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar - characters with intent in, make a temporary and copy the result - of the expression evaluation into it. - (gfc_conv_procedure_call): Set a flag for character formal args - having a character length that is not unity. If the procedure - is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case. - Also, extend bind C calls to unconditionally convert both - pointers and allocatable expressions. - -2019-02-23 David Malcolm <dmalcolm@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR middle-end/88074 - * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use - mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p. - (norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t. - -2019-02-22 Harald Anlauf <anlauf@gmx.de> - - PR fortran/83057 - * io.c (gfc_match_open): Fix logic in checks of OPEN statement - when NEWUNIT= is specified. - -2019-02-22 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/89431 - * gfortran.texi: Fix documentation to match the implementation. - -2019-02-22 Thomas Schwinge <thomas@codesourcery.com> - Cesar Philippidis <cesar@codesourcery.com> - - PR fortran/72741 - * gfortran.h (oacc_routine_lop): New enum. - (symbol_attribute): Use it. - * openmp.c (gfc_oacc_routine_dims): Replace with... - (gfc_oacc_routine_lop): ... this new function. - (gfc_match_oacc_routine): Adjust. - * trans-decl.c (add_attributes_to_decl): Likewise. - -2019-02-22 Thomas Schwinge <thomas@codesourcery.com> - - * openmp.c (gfc_match_oacc_declare): Revert earlier changes. - -2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> - - * dump-parse-tree.c (debug): Implement for gfc_expr *, - gfc_typespec *, gfc_typespec and gfc_symbol *. - -2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/86119 - * class.c (gfc_get_len_component): Add argument k for kind. - If the kind of the resulting expression is not equal to k, - convert it. - * gfortran.h (gfc_len_component): Adjust prototype. - * simplify.c (gfc_simplify_len): Pass kind to - gfc_get_len_component. - -2019-02-20 Martin Liska <mliska@suse.cz> - - * gfortran.texi: Change singular to plural. - -2019-02-20 Martin Liska <mliska@suse.cz> - - * gfortran.texi: Document Fortran header directive. - -2019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/89384 - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy - argument is contiguous and the actual argument may not be, - use gfc_conv_subref_array_arg. - -2019-02-19 Thomas Schwinge <thomas@codesourcery.com> - - PR c/87924 - * openmp.c (gfc_match_omp_clauses): Add representation of wait clause - without argument as 'wait (GOMP_ASYNC_NOVAL)'. - -2019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/87689 - * trans-decl.c (gfc_get_extern_function_decl): Add argument - actual_args and pass it through to gfc_get_function_type. - * trans-expr.c (conv_function_val): Add argument actual_args - and pass it on to gfc_get_extern_function_decl. - (conv_procedure_call): Pass actual arguments to conv_function_val. - * trans-types.c (get_formal_from_actual_arglist): New function. - (gfc_get_function_type): Add argument actual_args. Generate - formal args from actual args if necessary. - * trans-types.h (gfc_get_function_type): Add optional argument. - * trans.h (gfc_get_extern_function_decl): Add optional argument. - -2019-02-18 Martin Liska <mliska@suse.cz> - - * decl.c (gfc_match_gcc_builtin): Add support for filtering - of builtin directive based on multilib ABI name. - -2019-02-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/88299 - * resolve.c (resolve_common_blocks,resolve_common_vars): Move - check for obsolent COMMON feature in F2018 to better place. - -2019-02-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89077 - * decl.c (gfc_set_constant_character_len): Clear original string - representation after padding has been performed to target length. - -2019-02-16 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/88074 - * simplify.c (simplify_transformation_to_array): Run post_op - immediately after processing corresponding row, rather than at the - end. - (norm2_scale): New variable. - (add_squared): Rename to ... - (norm2_add_squared): ... this. Scale down operand and/or result - if needed. - (do_sqrt): Rename to ... - (norm2_do_sqrt): ... this. Handle the result == e case. Scale up - result and clear norm2_scale. - (gfc_simplify_norm2): Clear norm2_scale. Change add_squared to - norm2_add_squared and &do_sqrt to norm2_do_sqrt. Scale up result - and clear norm2_scale again. - -2019-02-17 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/71066 - * trans-decl.c (generate_coarray_sym_init): For an array - constructor in a DATA statement of a coarray variable, set the - rank to 1 to avoid confusion later on. If the constructor - contains only one value, use that for initiailizig. - -2019-02-14 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/81552 - * gfortran.h (gfc_option_t): Make flag_init_integer_value a long. - * options.c (gfc_handle_option): Use strtol instead of atoi. - * invoke.texi: Document -finit-integer behavior in more detail. - -2019-02-14 Harald Anlauf <anlauf@gmx.de> - - PR fortran/88248 - * symbol.c: Move check for labeled DO statement from - gfc_define_st_label to gfc_reference_st_label. - -2019-02-14 Cesar Philippidis <cesar@codesourcery.com> - - PR fortran/72715 - * openmp.c (resolve_oacc_nested_loops): Error on do concurrent - loops. - -2019-02-13 Martin Liska <mliska@suse.cz> - - PR fortran/88649 - * resolve.c (resolve_operator): Initialize 't' right - after function entry. Skip switch (e->value.op.op) - for -fdec operands that become function calls. - -2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/71723 - * expr.c (gfc_check_assign): Add argument is_init_expr. If we are - looking at an init expression, issue error if the target is not a - TARGET and we are not looking at a procedure pointer. - * gfortran.h (gfc_check_assign): Add optional argument - is_init_expr. - -2019-02-09 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89077 - * resolve.c (gfc_resolve_substring_charlen): Check substring - length for constantness prior to general calculation of length. - -2019-02-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/89200 - * trans-array.c (gfc_trans_create_temp_array): Set the 'span' - field for derived types. - -2019-02-04 Harald Anlauf <anlauf@gmx.de> - - PR fortran/89077 - * decl.c (add_init_expr_to_sym): Copy length of string initializer - to declared symbol. - -2019-02-04 Martin Liska <mliska@suse.cz> - - PR fortran/89185 - * resolve.c (resolve_ref): Remove breakout variable as - we need to prevent prev = &(*prev)->next to happen - with *prev == NULL. - -2019-02-04 Martin Liska <mliska@suse.cz> - - PR fortran/88912 - * scanner.c (load_file): Report error for -fpre-include - file and do not ICE. - -2019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/81344 - * invoke.texi: Document the behavior of repeated -ffpe-trap - and -ffpe-summary. - -2019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/88298 - * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set. - * gfortran.h (gfc_expr): Add flag do_not_warn. - * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if - no warning is desired. - -2019-02-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88393 - * trans-expr.c (gfc_conv_procedure_call): For derived entities, - passed in parentheses to class formals, invert the order of - copying allocatable components to taking the _data of the - class expression. - -2019-02-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88980 - * trans-array.c (gfc_array_init_size): Add element_size to the - arguments. - (gfc_array_allocate): Remove the recalculation of the size of - the element and use element_size from the call to the above. - Unconditionally set the span field of the descriptor. - -2019-02-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88685 - * expr.c (is_subref_array): Move the check for class pointer - dummy arrays to after the reference check. If we haven't seen - an array reference other than an element and a component is not - class or derived, return false. - -2019-02-01 Jakub Jelinek <jakub@redhat.com> - - PR fortran/83246 - PR fortran/89084 - * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs - if sym->ns->construct_entities rather than if - sym->ns->parent->code->op == EXEC_BLOCK. - -2019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/88669 - * resolve.c (resolve_component): If the reference is a BT_CLASS, - copy the contiguous attribute from the reference and use the - correct attributes. - -2019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/52564 - * io.c (match_io): Add check for comma after '*' without subsequent - IO list. - -2019-01-30 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/52884 - * invoke.texi: Document the promotion of double precision - constants. - -2019-01-29 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/57048 - * interface.c (gfc_compare_types): If a derived type and an - integer both have a derived type, and they are identical, - this is a C binding type and compares equal. - -2019-01-26 Harald Anlauf <anlauf@gmx.de> - - PR fortran/57553 - * expr.c (check_inquiry): Add list of inquiry functions allowed in - constant expressions for F2008+. - -2019-01-25 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/85780 - * decl.c (gfc_match_subroutine): Check for conflict between BIND(C) - and alternative return. - -2019-01-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/88929 - * trans-array.c (gfc_conv_descriptor_elem_len): New function. - * trans-array.h : Add prototype for above. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of - assumed rank arrays being flagged by rank = -1 in expressions. - Intent in arrays need a pointer to a copy of the data to be - assigned to the descriptor passed for conversion. This should - then be freed, together with the CFI descriptor on return from - the C call. - -2019-01-22 Harald Anlauf <anlauf@gmx.de> - - PR fortran/88579 - * trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer - and (- 2**e) ** integer. - -2019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/37835 - * resolve.c (resolve_types): Add !flag_automatic. - * symbol.c (gfc_add_save): Silence warnings. - -2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/77960 - * io.c (match_io_element): input-item cannot be an external function. - -2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> - Paul Thomas <pault@gcc.gnu.org> - - PR fortran/56789 - * trans-expr.c (gfc_conv_procedure_call): Call - gfc_conv_subref_array_arg if the formal arg is contiguous - and the actual arg may not be. - -2019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/88871 - * resolve.c (resolve_ref): Fix logic for removal of - reference. - -2019-01-19 Jakub Jelinek <jakub@redhat.com> - - PR fortran/88902 - * trans-decl.c (gfc_get_symbol_decl): Don't add length to function - or parent function if it has been added there already. - -2019-01-15 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/43136 - * resolve.c (resolve_array_ref): Add equal_length argument; set it - if the length of the substring equals that of the orignal - variable. - (resolve_ref): Remove the substring if it is equal in length to - the original variable, unless it is an EXPR_SUBSTRING). - -2019-01-15 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/81849 - * resolve.c (resolve_symbol): Host associated varaibles can appear - in the specification statement of a RESULT array. - -2019-01-15 Paul Thomas <pault@gcc.gnu.org> - - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs - that are indirect references; ie. dummy arguments. - -2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org> - - PR fortran/88803 - * gfortran.texi: Replace @xref with @ref and adjust the sentence. - -2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/57992 - * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack - functions with contiguous results. - -2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/59345 - * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not - pack/unpack results of functions which return an explicit-shaped - or allocatable array. - -2019-01-12 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/61765 - * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif - structure into independent if's with a return to simplify logic. - Avoid a check for ENTRY name with bind(c). - -2019-01-12 Paul Thomas <pault@gcc.gnu.org> - - * gfortran.texi: Add description in sections on TS 29113 and - further interoperability with C. - * trans-array.c (gfc_conv_descriptor_attribute): New function. - (gfc_get_dataptr_offset): Remove static function attribute. - * trans-array.h: Add prototypes for above functions. - * trans-decl.c: Add declarations for the library functions - cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc. - * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function. - (gfc_conv_procedure_call): Call it for scalar and array actual - arguments, when the formal arguments are bind_c with assumed - shape or assumed rank. - * trans.h: External declarations for gfor_fndecl_cfi_to_gfc - and gfor_fndecl_gfc_to_cfi. - -2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/35031 - * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby - mis-indentation. - -2019-01-11 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/85956 - PR lto/88733 - * trans-openmp.c: Include attribs.h. - (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle - VAR_DECL max bound with "omp dummy var" attribute like NULL or - error_mark_node - recompute number of elts independently. - -2019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/59345 - * trans-array.c (gfc_conv_parameter_array): Temporary - arrays generated for expressions do not need to be repacked. - -2019-01-10 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/86322 - * decl.c (top_var_list): Set locus of expr. - (gfc_match_data): Detect pointer on non-rightmost part-refs. - -2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/88376 - * resolve.c (is_illegal_recursion): Remove an assert(). - -2019-01-09 Sandra Loosemore <sandra@codesourcery.com> - - PR other/16615 - * expr.c: Change "can not" to "cannot". - -2019-01-09 Sandra Loosemore <sandra@codesourcery.com> - - PR other/16615 - * class.c: Mechanically replace "can not" with "cannot". - * decl.c: Likewise. - * expr.c: Likewise. - * gfc-internals.texi: Likewise. - * intrinsic.texi: Likewise. - * invoke.texi: Likewise. - * io.c: Likewise. - * match.c: Likewise. - * parse.c: Likewise. - * primary.c: Likewise. - * resolve.c: Likewise. - * symbol.c: Likewise. - * trans-array.c: Likewise. - * trans-decl.c: Likewise. - * trans-intrinsic.c: Likewise. - * trans-stmt.c: Likewise. - -2019-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/68426 - * simplify.c (gfc_simplify_spread): Also simplify if the - type of source is an EXPR_STRUCTURE. - -2019-01-08 Janus Weil <janus@gcc.gnu.org> - - PR fortran/88047 - * class.c (gfc_find_vtab): For polymorphic typespecs, the components of - the class container may not be available (in case of invalid code). - -2019-01-08 Richard Biener <rguenther@suse.de> - - PR fortran/88611 - * trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_* - directly build the expected GENERIC tree. - -2019-01-07 Thomas Koenig <tkoenig@gcc.gnu.org> - Harald Anlauf <anlauf@gmx.de> - Tobias Burnus <burnus@gcc.gnu.org> - - PR fortran/45424 - * check.c (gfc_check_is_contiguous): New function. - * expr.c (gfc_is_not_contiguous): New function. - * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS. - Add prototype for gfc_is_not_contiguous. - * intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS. - (add_function): Add is_contiguous. - * intrinsic.h: Add prototypes for gfc_check_is_contiguous, - gfc_simplify_is_contiguous and gfc_resolve_is_contiguous. - * intrinsic.texi: Add IS_CONTIGUOUS. - * iresolve.c (gfc_resolve_is_contiguous): New function. - * simplify.c (gfc_simplify_is_contiguous): New function. - * trans-decl.c (gfor_fncecl_is_contiguous0): New variable. - (gfc_build_intrinsic_function_decl): Add it. - * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New - function. - (gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS. - -2019-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/88658 - * gfortran.h: Add macro gfc_real_4_kind - * simplify.c (simplify_min_max): Special case for the types of - AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of - their arguments. - -2019-01-05 Janus Weil <janus@gcc.gnu.org> - - PR fortran/88009 - * class.c (gfc_find_derived_vtab): Mark the _final component as - artificial. - (find_intrinsic_vtab): Ditto. Also add an extra check to avoid - dereferencing a null pointer and adjust indentation. - * resolve.c (resolve_fl_variable): Add extra check to avoid - dereferencing a null pointer. Move variable declarations to local scope. - (resolve_fl_procedure): Add extra check to avoid dereferencing a null - pointer. - * symbol.c (check_conflict): Suppress errors for artificial symbols. - -2019-01-01 Steven G. Kargl <kargl@gcc.gnu.org> - - * parse.c (decode_statement): Suppress "Unclassifiable statement" - error if previous error messages were emittes. - -2019-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> - - PR fortran/82743 - * primary.c (gfc_convert_to_structure_constructor): If a character - in a constructor is too long, add a warning with - -Wcharacter-truncation. - -2019-01-01 Jakub Jelinek <jakub@redhat.com> - - Update copyright years. +2020-01-01 Jakub Jelinek <jakub@redhat.com> * gfortranspec.c (lang_specific_driver): Update copyright notice dates. @@ -3125,7 +7,7 @@ * intrinsic.texi: Ditto. * invoke.texi: Ditto. -Copyright (C) 2019 Free Software Foundation, Inc. +Copyright (C) 2020 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/fortran/ChangeLog-2019 b/gcc/fortran/ChangeLog-2019 new file mode 100644 index 0000000..1fcfd92 --- /dev/null +++ b/gcc/fortran/ChangeLog-2019 @@ -0,0 +1,3132 @@ +2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91651 + * intrinsic.c (add_sym_4ind): New function. + (add_functions): Use it for INDEX. + (resolve_intrinsic): Also call f1m for INDEX. + * intrinsic.h (gfc_resolve_index_func): Adjust prototype to + take a gfc_arglist instead of individual arguments. + * iresolve.c (gfc_resolve_index_func): Adjust arguments. + Remove KIND argument if present, and make sure this is + not done twice. + * trans-decl.c: Include "intrinsic.h". + (gfc_get_extern_function_decl): Special case for resolving INDEX. + +2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92961 + * gfortran.h (gfc_seen_div0): Add declaration. + * arith.h (gfc_seen_div0): Add definition. + (eval_intrinsic): For integer division by zero, set gfc_seen_div0. + * decl.c (variable_decl): If resolution resp. simplification + fails for array spec and a division of zero error has been + seen, return MATCH_ERROR. + +2019-12-21 Harald Anlauf <anlauf@gmx.de> + + PR fortran/92990 + * match.c (gfc_match_nullify): Check for valid pointer object. + Reject bounds remapping. + +2019-12-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/92753 + * expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the + temporary expression has been converted to a constant and make + the new expression accordingly. Correct the error in INQUIRY_RE + and INQUIRY_IM cases. The original rather than the resolved + expression was being used as the source in mpfr_set. + +2019-12-20 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/91512 + PR fortran/92738 + * lang.opt (-finline-arg-packing): Add trailing dot to help text. + +2019-12-20 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR middle-end/91512 + PR fortran/92738 + * invoke.texi: Document -finline-arg-packing. + * lang.opt: Add -finline-arg-packing. + * options.c (gfc_post_options): Handle -finline-arg-packing. + * trans-array.c (gfc_conv_array_parameter): Use + flag_inline_arg_packing instead of checking for optimize and + optimize_size. + +2019-12-20 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92996 + * expr.c (simplify_parameter_variable): Call gfc_resolve_ref and + gfc_expression_rank; fix location info. + * gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare. + * match.c (gfc_match_stopcode): Remove redundant setting of + gfc_init_expr_flag; early return if gfc_simplify_expr has an error. + * resolve.c (gfc_expression_rank): Renamed from expression_rank; + minor cleanup. + (gfc_resolve_ref): Removed static and renamed from resolve_ref. + (resolve_variable, resolve_typebound_function, + resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc, + gfc_resolve_expr, resolve_procedure): Update calls. + +2019-12-20 Tobias Burnus <tobias@codesourcery.com> + + * openmp.c (resolve_omp_clauses): Move is-coindexed check from here ... + (gfc_match_omp_variable_list): ... to here. + +2019-12-19 Julian Brown <julian@codesourcery.com> + + * openmp.c (resolve_oacc_data_clauses): Don't disallow allocatable + polymorphic types for OpenACC. + * trans-openmp.c (gfc_trans_omp_clauses): Support polymorphic class + types. + +2019-12-19 Julian Brown <julian@codesourcery.com> + + * gfortran.h (gfc_omp_map_op): Add OMP_MAP_ATTACH, OMP_MAP_DETACH. + * openmp.c (gfc_match_omp_variable_list): Add allow_derived parameter. + Parse derived-type member accesses if true. + (omp_mask2): Add OMP_CLAUSE_ATTACH and OMP_CLAUSE_DETACH. + (gfc_match_omp_map_clause): Add allow_derived parameter. Pass to + gfc_match_omp_variable_list. + (gfc_match_omp_clauses): Support attach and detach. Support derived + types for appropriate OpenACC directives. + (OACC_PARALLEL_CLAUSES, OACC_SERIAL_CLAUSES, OACC_KERNELS_CLAUSES, + OACC_DATA_CLAUSES, OACC_ENTER_DATA_CLAUSES): Add OMP_CLAUSE_ATTACH. + (OACC_EXIT_DATA_CLAUSES): Add OMP_CLAUSE_DETACH. + (check_symbol_not_pointer): Don't disallow pointer objects of derived + type. + (resolve_oacc_data_clauses): Don't disallow allocatable derived types. + (resolve_omp_clauses): Perform duplicate checking only for non-derived + type component accesses (plain variables and arrays or array sections). + Support component refs. + * trans-expr.c (gfc_conv_component_ref, + conv_parent_component_references): Make global. + (gfc_maybe_dereference_var): New function, broken out of... + (gfc_conv_variable): ...here. Call above function. + * trans-openmp.c (gfc_omp_privatize_by_reference): Support component + refs. + (gfc_trans_omp_array_section): New function, broken out of... + (gfc_trans_omp_clauses): ...here. Support component refs/derived + types, attach and detach clauses. + * trans.h (gfc_conv_component_ref, conv_parent_component_references, + gfc_maybe_dereference_var): Add prototypes. + +2019-12-19 Mark Eggleston <mark.eggleston@codethink.com> + + PR fortran/92896 + * array.c (walk_array_constructor): Replace call to gfc_convert_type + with call to gfc_convert_type_warn with new argument set to true. + (check_element_type): Replace call to cfg_convert_type with call to + gfc_convert_type_warn with new argument set to true. + * gfortran.h: Add argument "array" to gfc_convert_type_warn default + value set to false. + *intrinsic.c (gfc_convert_type_warn): Update description of arguments. + Add new argument to argument list. Add check for conversion to numeric + or logical from character and array set to true, i.e. if conversion + from character is in an array constructor reject it, goto bad. + +2019-12-19 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92977 + * frontend-passes.c (call_external_blas): Use || instead of |. + +2019-12-19 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92977 + * frontend-passes.c (in_omp_atomic): New variable. + (cfe_expr_0, matmul_to_var_expr, matmul_temp_args, + inline_matmul_assign, call_external_blas): Don't optimize in + EXEC_OMP_ATOMIC. + (optimize_namespace): Clear in_omp_atomic. + (gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore + it around. + +2019-12-19 Julian Brown <julian@codesourcery.com> + Maciej W. Rozycki <macro@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + * gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC. + * openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE. + (gfc_match_omp_clauses): Support no_create. + (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES) + (OACC_DATA_CLAUSES): Add OMP_CLAUSE_NO_CREATE. + * trans-openmp.c (gfc_trans_omp_clauses_1): Support + OMP_MAP_NO_ALLOC. + +2019-12-18 Harald Anlauf <anlauf@gmx.de> + + PR fortran/70853 + * trans-expr.c (gfc_trans_pointer_assignment): Reject bounds + remapping if pointer target is NULL(). + +2019-12-12 Harald Anlauf <anlauf@gmx.de> + + PR fortran/92898 + * check.c (gfc_check_is_contiguous): Simplify check to handle + arbitrary NULL() argument. + +2019-12-11 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92899 + * trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP, + do look through conversion on expr2 if any. + +2019-12-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/92897 + * array.c (gfc_set_array_spec): Remove invalid assert() triggered + by invalid Fortran code. + +2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91643 + * trans-array.c (gfc_conv_array_parameter): Do not repack + an assumed rank dummy argument. + +2019-12-10 Martin Liska <mliska@suse.cz> + + PR fortran/92874 + * dependency.c (gfc_dep_compare_expr): Bail out + when one of the arguments is null. + +2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92863 + * misc.c (gfc_typename): If derived component is NULL for + derived or class, return "invalid type" or "invalid class", + respectively. + +2019-12-10 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92872 + * trans-array.c (get_CFI_desc): Fix cond whether saved desc exists. + +2019-12-09 David Malcolm <dmalcolm@redhat.com> + + * error.c (gfc_diagnostic_starter): Add pp_newline call before + call to diagnostic_show_locus. + +2019-12-09 Frederik Harwath <frederik@codesourcery.com> + + * trans-openmp.c (gfc_trans_omp_reduction_list): Pass correct location for each + clause to build_omp_clause. + +2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92780 + * resolve.c (resolve_assoc_var): Issue error if the associating + entity is a program. + +2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92764 + * interface.c (gfc_procedure_use): Check for existence of derived + component before using (twice). + +2019-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92755 + * dependency.c (gfc_dep_resolver): Move skipping of _data ref + into the loop. + +2019-12-07 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92793 + * trans.c (gfc_get_location): Declare. + * trans.c (gfc_get_location): Define; returns column-corrected location. + (trans_runtime_error_vararg, gfc_trans_runtime_check, + gfc_generate_module_code): Use new function. + * trans-array.c (gfc_trans_auto_array_allocation): Likewise. + * trans-common.c (build_field, get_init_field, create_common): Likewise. + * trans-decl.c (gfc_build_label_decl, gfc_get_symbol_decl): Likewise. + * trans-openmp.c (gfc_trans_omp_reduction_list, gfc_trans_omp_clauses): + Likewise. + * trans-stmt.c (gfc_trans_if_1): Likewise. + +2019-12-06 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92775 + * trans.h (struct lang_type, struct lang_decl): Remove span member. + (GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros. + * trans-array.h (gfc_get_descriptor_offsets_for_info): Add another + argument. + * trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF + argument and initialize *SPAN_OFF to the offset of span field. + * trans-types.c (gfc_get_array_descr_info): Adjust + gfc_get_descriptor_offsets_for_info caller. Compute elem_size + as base->span instead of TYPE_SIZE_UNIT (etype) constant. + +2019-12-06 Tobias Burnus <tobias@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * trans-openmp.c (gfc_build_conditional_assign, + gfc_build_conditional_assign_expr): New static functions. + (gfc_omp_finish_clause, gfc_trans_omp_clauses): Handle mapping of + absent optional arguments and fix mapping of present optional args. + +2019-12-05 Tobias Burnus <tobias@codesourcery.com> + + * trans-openmp.c (gfc_omp_is_optional_argument, + gfc_omp_check_optional_argument): Handle type(c_ptr),value which uses a + +2019-12-05 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92781 + * trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is + current_function_decl, add length to current rather than parent + function and expect DECL_CONTEXT (length) to be current_function_decl. + +2019-12-04 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92754 + * intrinsic.c (gfc_intrinsic_func_interface): Set + sym's flavor, intrinsic and function attribute if + unset. + +2019-12-04 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92756 + * trans-openmp.c (gfc_trans_omp_teams): Wrap OMP_TEAMS body into a + BIND_EXPR with a forced BLOCK. + +2019-11-30 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91783 + * dependency.c (gfc_dep_resolver): Do not look at _data + component if present. + +2019-11-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> + + PR fortran/90374 + * io.c (check_format): Allow zero width expoenent with e0. + +2019-11-27 Jakub Jelinek <jakub@redhat.com> + + PR fortran/91944 + * simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead + of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER. + +2019-11-27 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/92463 + * arith.c (gfc_check_real_range): Replace mp_exp_t by mpfr_exp_t. + +2019-11-25 Harald Anlauf <anlauf@gmx.de> + + PR fortran/92629 + * simplify.c (convert_mpz_to_unsigned): Skip assert for argument + range when -fno-range-check is specified. + +2019-11-25 Mark Eggleston <mark.eggleston@codethink.com> + Jim MacArthur <jim.macarthur@codethink.co.uk> + + * gfortran.texi: Update Hollerith constants support for character types + and use in comparisons. + * invoke.texi: Tidy up list of options. Update description of + -fdec-char-conversions. + * resolve.c (is_character_based): New. + (Convert_hollerith_to_character): New. (convert_to_numeric): New. + (resolve_operator): If both sides are character based and -fdec is + enabled convert Hollerith to character. If an operand is Hollerith, the + other is numeric and -fdec is enabled convert to numeric. + (resolve_ordinary_assign): Add check for -fdec-char-conversions for + assignment of character literals.2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/92463 + Revert r269139 + * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use + mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p. + (norm2_add_squared): Likewise. Use mpfr_exp_t rather than + mp_exp_t. + +2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/92463 + * arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t. + (gfc_check_real_range): Likewise. + * gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN. + * module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t. + * simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t. + (radians_f): Likewise. + (fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t. + (asympt_erfc_scaled): Likewise. + (gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and + GMP_RND* to MPFR_RND*. + +2019-11-15 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/69654 + * trans-expr.c (gfc_trans_structure_assign): Move assignment to + 'cm' after treatment of C pointer types and test that the type + has been completely built before it. Add an assert that the + backend_decl for each component exists. + +2019-11-13 Tobias Burnus <tobias@codesourcery.com> + + * trans-expr.c (gfc_conv_procedure_call): Fold hidden + is-present argument to the right type. + +2019-11-12 Harald Anlauf <anlauf@gmx.de> + + PR fortran/81651 + * module.c (gzopen_included_file, gzopen_included_file_1) + (gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully + qualified module path for error reporting. + +2019-11-12 Martin Liska <mliska@suse.cz> + + * options.c (gfc_init_options): + Use SET_OPTION_IF_UNSET. + +2019-11-12 Maciej W. Rozycki <macro@codesourcery.com> + Frederik Harwath <frederik@codesourcery.com> + + gcc/fortran/ + * gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP, + ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL + enumeration constants. + (gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL + enumeration constants. + * match.h (gfc_match_oacc_serial): New prototype. + (gfc_match_oacc_serial_loop): Likewise. + * dump-parse-tree.c (show_omp_node, show_code_node): Handle + EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. + * match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP. + * openmp.c (OACC_SERIAL_CLAUSES): New macro. + (gfc_match_oacc_serial_loop): New function. + (gfc_match_oacc_serial): Likewise. + (oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP. + (resolve_omp_clauses): Handle EXEC_OACC_SERIAL. + (oacc_code_to_statement): Handle EXEC_OACC_SERIAL and + EXEC_OACC_SERIAL_LOOP. + (gfc_resolve_oacc_directive): Likewise. + * parse.c (decode_oacc_directive) <'s'>: Add case for "serial" + and "serial loop". + (next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL. + (gfc_ascii_statement): Likewise. Handle ST_OACC_END_SERIAL_LOOP + and ST_OACC_END_SERIAL. + (parse_oacc_structured_block): Handle ST_OACC_SERIAL. + (parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and + ST_OACC_END_SERIAL_LOOP. + (parse_executable): Handle ST_OACC_SERIAL_LOOP and + ST_OACC_SERIAL. + (is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. + * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_oacc_construct): Handle + EXEC_OACC_SERIAL. + (gfc_trans_oacc_combined_directive): Handle + EXEC_OACC_SERIAL_LOOP. + (gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and + EXEC_OACC_SERIAL. + * trans.c (trans_code): Likewise. + +2019-11-11 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/91828 + * simplify.c (gfc_simplify_fraction): Remove fallback path for + MPFR < 3.1.0. + +2019-11-11 Tobias Burnus <tobias@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * trans-expr.c (gfc_conv_expr_present): Check for DECL_ARTIFICIAL + for the VALUE hidden argument avoiding -fallow-underscore issues. + * trans-decl.c (create_function_arglist): Also set + GFC_DECL_OPTIONAL_ARGUMENT for per-value arguments. + * f95-lang.c (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT): + Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; point + to gfc_omp_check_optional_argument. + * trans.h (gfc_omp_check_optional_argument): Subsitutes + gfc_omp_is_optional_argument declaration. + * trans-openmp.c (gfc_omp_is_optional_argument): Make static. + (gfc_omp_check_optional_argument): New function. + +2019-11-10 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/91413 + * trans-decl.c (gfc_finish_var_decl): Don't print warning when + -fno-automatic is enabled. + +2019-11-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/92123 + *decl.c (gfc_verify_c_interop_param): Remove error asserting + that pointer or allocatable variables in a bind C procedure are + not supported. Delete some trailing spaces. + * trans-stmt.c (trans_associate_var): Correct the attempt to + treat scalar pointer or allocatable temporaries as if they are + array descriptors. + +2019-11-09 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92321 + * frontend-passes.c (call_external_blas): Commit symbol for + external BLAS routine. + +2019-11-08 Jakub Jelinek <jakub@redhat.com> + + * arith.c (character2representation): Change i type to size_t. + +2019-11-08 Mark Eggleston <mark.eggleston@codethink.com> + Jim MacArthur <jim.macarthur@codethink.co.uk> + + * arith.c (hollerith2representation): Use OPT_Wcharacter_truncation in + call to gfc_warning. + (character2representation, gfc_character2int, gfc_character2real, + gfc_character2complex and gfc_character2logical): New. + * arith.h (gfc_character2int, gfc_character2real, gfc_character2complex, + gfc_character2logical): Declare. + * expr.c (gfc_check_assign): Return true if left hand side is numeric + or logical and the right hand side is character and of kind=1. + * gfortran.texi: Add -fdec-char-conversions. + * intrinsic.c (add_conversions): Add conversions from character to + integer, real, complex and logical types for their supported kinds. + (gfc_convert_type_warn): Reorder if..else if.. sequence so that warnings + are produced for conversion to logical. + * invoke.texi: Add option to list of options. + * invoke.texi: Add Character conversion subsection to Extensions + section. + * lang.opt: Add new option. + * options.c (set_dec_flags): Add SET_BITFLAG for + flag_dec_char_conversions. + * resolve.c (resolve_ordindary_assign): Issue error if the left hand + side is numeric or logical and the right hand side is a character + variable. + * simplify.c (gfc_convert_constant): Assign the conversion function + depending on destination type. + * trans-const.c (gfc_constant_to_tree): Use OPT_Wsurprising in + gfc_warning allowing the warning to be switched off only if + flag_dec_char_conversions is enabled. + +2019-11-08 Tobias Burnus <tobias@codesourcery.com + + PR fortran/91253 + * scanner.c (skip_fixed_comments): Move comment + lines to next if block. + (gfc_next_char_literal): Fix continue_line setting. + (get_file): Remove bogus ATTRIBUTE_UNUSED. + +2019-11-06 Jerry DeLisle <jvdelisle@gcc.ngu.org> + + PR fortran/90374 + * io.c (check_format): Allow zero width for D, E, EN, and ES + specifiers as default and when -std=F2018 is given. Retain + existing errors when using the -fdec family of flags. + +2019-11-03 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92113 + * trans-decl.c (gfc_get_symbol_decl): If __def_init actually + contains a value, put it into the read-only section. + +2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> + + * decl.c (match_byte_typespec): New function. Match BYTE type-spec. + (gfc_match_decl_type_spec): Use it. + +2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90988 + * decl.c (gfc_match_private, gfc_match_public): Fixed-form source code + does not require whitespace between PRIVATE (or PUBLIC) and an entity. + +2019-11-01 Tobias Burnus <tobias@codesourcery.com> + + * f95-lang.c (LANG_HOOKS_OMP_ARRAY_DATA): Set to gfc_omp_array_data. + * trans-array.c (gfc_conv_descriptor_data_get): Handle also + REFERENCE_TYPE. + * trans-openmp.c (gfc_omp_array_data): New. + * trans.h (gfc_omp_array_data): New prototype. + +2019-10-31 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92284. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Free CFI descriptor + at the end; partial revised revert of Rev. 277502. + +2019-10-31 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92277 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL + checking. + +2019-10-30 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92208 + * trans-array.c (gfc_conv_array_parameter): Only copy + string-length backend_decl if expression is not a function. + +2019-10-30 Mark Eggleston <mark.eggleston@codethink.com> + + * invoke.texi: Add -Wno-overwrite-recursive to list of options. Add + description of -Wno-overwrite-recursive. Fix typo in description + of -Winteger-division. + * lang.opt: Add option -Woverwrite-recursive initialised as on. + * option.c (gfc_post_options): Output warning only if it is enabled. + +2019-10-28 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/91863 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Don't free data + memory as that's done on the Fortran side. + (gfc_conv_procedure_call): Handle void* pointers from + gfc_conv_gfc_desc_to_cfi_desc. + +2019-10-27 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/86248 + * resolve.c (flag_fn_result_spec): Correct a typo before the + function declaration. + * trans-decl.c (gfc_sym_identifier): Boost the length of 'name' + to allow for all variants. Simplify the code by using a pointer + to the symbol's proc_name and taking the return out of each of + the conditional branches. Allow symbols with fn_result_spec set + that do not come from a procedure namespace and have a module + name to go through the non-fn_result_spec branch. + +2019-10-25 Cesar Philippidis <cesar@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + + * openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons + argument. + (gfc_match_omp_clauses): Update calls to permit common blocks for + OpenACC's copy/copyin/copyout, create/delete, host, + pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in, + present_or_copy_out, present_or_create and self. + +2019-10-24 Martin Liska <mliska@suse.cz> + + PR fortran/92174 + * array.c (gfc_resolve_array_spec): Break the loop + for out of bounds index. + * resolve.c (is_non_constant_shape_array): Likewise. + +2019-10-23 Steven G. Kargl <kargl@gcc.gnu.org> + + dump-parse-tree.c (show_expr): Add dumping of BT_BOZ constants. + +2019-10-22 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/92174 + * decl.c (attr_decl1): Move check for F2018:C822 from here ... + * array.c (gfc_set_array_spec): ... to here. + +2019-10-18 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/69455 + * trans-decl.c (generate_local_decl): Avoid misconstructed + intrinsic modules in a BLOCK construct. + +2019-10-18 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/91586 + * class.c (gfc_find_derived_vtab): Return NULL + instead of deref'ing NULL pointer. + +2019-10-15 James Norris <jnorris@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + + PR fortran/65438 + * openmp.c (check_array_not_assumed): Remove pointer check. + +2019-10-14 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/89943 + decl.c (gfc_match_function_decl): Ignore duplicate BIND(C) for function + declaration in submodule. Implement at check for F2018 C1550. + (gfc_match_entry): Use temporary for locus, which allows removal of + one gfc_error_now(). + (gfc_match_subroutine): Ignore duplicate BIND(C) for subroutine + declaration in submodule. Implement at check for F2018 C1550. + +2019-10-14 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92004 + * array.c (expand_constructor): Set from_constructor on + expression. + * gfortran.h (gfc_symbol): Add maybe_array. + (gfc_expr): Add from_constructor. + * interface.c (maybe_dummy_array_arg): New function. + (compare_parameter): If the formal argument is generated from a + call, check the conditions where an array element could be + passed to an array. Adjust error message for assumed-shape + or pointer array. Use correct language for assumed shaped arrays. + (gfc_get_formal_from_actual_arglist): Set maybe_array on the + symbol if the actual argument is an array element fulfilling + the conditions of 15.5.2.4. + +2019-10-14 Tobias Burnus <tobias@codesourcery.com> + + * error.c: Remove debug pragma added in previous commit. + +2019-10-14 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92072 + * error.c (error_print, gfc_format_decoder): Fix %C column- + offset handling. + +2019-10-13 Damian Rouson <damain@sourceryinstitue.org> + + PR fortran/91513 + * resolve.c (resolve_ordinary_assign): Improved error message. + +2019-10-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90297 + * resolve.c (resolve_typebound_function): Remove code with no + functional effect. + +2019-10-13 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/92017 + * expr.c (simplify_parameter_variable): Set the character length + of the result expression from the original expression if + necessary. + +2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91649 + check.c (gfc_check_findloc): Additional checking for valid arguments + +2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91715 + * decl.c (gfc_match_prefix): If matching a type-spec returns an error, + it's an error so re-act correctly. + +2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/92018 + * check.c (reset_boz): New function. + (illegal_boz_arg, boz_args_check, gfc_check_complex, gfc_check_float, + gfc_check_transfer): Use it. + (gfc_check_dshift): Use reset_boz, and re-arrange the checking to + help suppress possible run-on errors. + (gfc_check_and): Restore checks for valid argument types. Use + reset_boz, and re-arrange the checking to help suppress possible + run-on errors. + * resolve.c (resolve_function): Actual arguments cannot be BOZ in + a function reference. + +2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/92019 + * array.c (match_subscript): BOZ cannot be an array subscript. + +2019-10-11 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/92050 + * trans-expr.c (gfc_conv_procedure_call): Handle code generated + by -fcheck=all. + +2019-10-11 Tobias Burnus <tobias@codesourcery.com> + + * f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to + gfc_omp_is_allocatable_or_ptr. + * trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT + only if not passed by value. + * trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New. + (gfc_trans_omp_clauses): For MAP, handle (present) optional arguments; + for target update, handle allocatable/pointer scalars. + * trans.h (gfc_omp_is_allocatable_or_ptr): Declare. + +2019-10-10 Tobias Burnus <tobias@codesourcery.com> + + * trans-openmp.c (gfc_trans_omp_clauses): Actually pass use_device_addr + on to the middle end. + +2019-10-08 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91801 + * simplify.c (gfc_simplify_reshape): Convert a gcc_assert into a + gfc_error as a user can easily hit the condition. + +2019-10-08 Tobias Burnus <tobias@codesourcery.com> + + * parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD. + +2019-10-08 Tobias Burnus <tobias@codesourcery.com> + + * match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos. + * openmp.c (gfc_match_omp_eos): Make static. + (gfc_match_omp_eos_error): New. + * parse.c (matchs, matchdo, matchds): Do as done for 'matcho' - + if error occurred after OpenMP/OpenACC directive matched, do not + try other directives. + (decode_oacc_directive, decode_omp_directive): Call new function + instead. + +2019-10-05 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/47045 + * decl.c (variable_decl): Do not search parent namespace for symbol. + +2019-10-05 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91926 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Correct the + assignment of the attribute field to account correctly for an + assumed shape dummy. Assign separately to the gfc and cfi + descriptors since the atribute can be different. Add btanch to + correctly handle missing optional dummies. + +2019-10-04 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran.91959 + * fortran/decl.c (variable_decl): Re-arrange code for matching %FILL. + +2019-10-04 Tobias Burnus <tobias@codesourcery.com> + + * error.c (error_print, gfc_format_decoder): Fix off-by one issue + with %C. + +2019-10-03 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91497 + * simplify.c (gfc_simplify_dble, simplify_intconv, gfc_simplify_real, + gfc_simplify_sngl): Disable -Wconversion and -Wconversion-extra + warnings for explicit conversion of literal constants. + +2019-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> + + * primary.c (match_real_constant): Remove shadowing local vars. + Rename local vars. Fix undefined behavior in loop termination. + (gfc_convert_to_structure_constructor): Rename local var. + +2019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/84487 + * trans-decl.c (gfc_get_symbol_decl): For __def_init, set + DECL_ARTIFICAL and do not set TREE_READONLY. + +2019-10-03 Mark Eggleston <mark.eggleston@codethink.com> + + * array.c (check_element_type): Call gfc_typename with the gfc_expr + "expr" instead of its gfc_typespec "ts". + * check.c (gfc_check_co_reduce): Call gfc_typename with the gfc_expr + "a" instead of its gfc_typespec "ts". + (gfc_check_co_reduce): Call gfc_typename with the gfc_expr "a" instead + of its gfc_typespec "ts". + (gfc_check_eoshift): Call gfc_typename with the gfc_expr "array" + instead of its gfc_typespec ts. + (gfc_check_same_type_as): In two calls to gfc_typename use "a" and "b" + of type gfc_expr instead of the "ts" fields of "a" and "b" + * decl.c (variable_decl): Call gfc_typename with the gfc_expr + "initializer" instead of its gfc_typespec "ts". + * expr.c (gfc_check_assign): Use "rvalue" and "lvalue" of type gfc_expr + in calls to gfc_typename instead of their "ts" fields of type + gfc_typespec. + (gfc_check_pointer_assign): Use "rvalue" and "lvalue" of type gfc_expr + in calls to gfc_typename instead of their "ts" fields of type + gfc_typespec. + * gfortran.h: Add prototypes for gfc_dummy_typename and a new function + gfc_typename for gfc_expr *. + *interface.c (gfc_check_dummy_characteristics): Use gfc_dummy_typename + for the dummy variable. + (compare_parameter): Use gfc_dummy_typename for the formal argument. + Use "actual" of type gfc_expr in call to gfc_typename for the actual + argument. + * intrinsic.c (check_arglist): Use gfc_dummy_typename for the formal + argument. Use expressions of type gfc_expr from the argument list to + call gfc_typename. + (gfc_convert_type_warn): New local variable "is_char_constant" set if + the expression type is a character constant. At the "bad" label + determine source type name by calling gfc_typename with either "expr" + for character constants or "from_ts" and use that in the warning + messages instead of the original call to gfc_typename. + * misc.c (gfc_typename): New function for gfc_expr *, use for where + character types are possible it can get the character length from + gfc_expr for character literals. + (gfc_dummy_typename): New functionfor gfc_typespec *, if no character + length is present the character type is assumed and the appropriate + string is return otherwise it calls gfc_typename for gfc_typespec *. + (gfc_typespec): for character types construct the type name with length + and kind (if it is not default kind). + +2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91784 + * simplify.c (gfc_convert_constant): Simplify expression if the + expression type is EXPR_OP. + +2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91785 + * primary.c (gfc_match_varspec): Ensure an inquiry parameter has + it locus set. + +2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91942 + * io.c (match_vtag): Check for non-NULL result->symtree. + (match_out_tag): Check for invalid constant due to inquiry parameter. + (match_filepos): Instead of a syntax error, go to cleanup to get better + error messages. + +2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91943 + * match.c (gfc_match_call): BOZ cannot be an actual argument in + a subroutine reference. + * resolve.c (resolve_function): BOZ cannot be an actual argument in + a function reference. + +2019-10-01 Jan Hubicka <jh@suse.cz> + + * module.c (load_commons): Initialize flags to 0 to silence + -Wmaybe-uninitialized warning. + (read_module): Likewise for n and comp_name. + +2019-10-02 Tobias Burnus <tobias@codesourcery.com> + + * dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR. + * gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR. + * openmp.c (omp_mask1): Likewise. + (gfc_match_omp_clauses): Match 'use_device_addr'. + (OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR. + (resolve_omp_clauses): Add it; add is_device_ptr checks. + +2019-10-02 Tobias Burnus <tobias@codesourcery.com> + + * openmp.c (gfc_match_omp_clauses): Show a clause-parsing + error if none was rised before. + * parse.c (matcha, matcho): If error occurred after + OpenMP/OpenACC directive matched, do not try other directives. + +2019-10-02 Tobias Burnus <tobias@codesourcery.com> + + * trans-openmp.c (gfc_omp_is_optional_argument): Fix coding + style. + +2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com> + + * f95-lang.c (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Define to + gfc_omp_is_optional_argument. + * trans-decl.c (create_function_arglist): Set + GFC_DECL_OPTIONAL_ARGUMENT in the generated decl if the parameter is + optional. + * trans-openmp.c (gfc_omp_is_optional_argument): New. + (gfc_omp_privatize_by_reference): Return true if the decl is an + optional pass-by-reference argument. + * trans.h (gfc_omp_is_optional_argument): New declaration. + (lang_decl): Add new optional_arg field. + (GFC_DECL_OPTIONAL_ARGUMENT): New macro. + +2019-10-01 David Malcolm <dmalcolm@redhat.com> + + * error.c (gfc_diagnostic_starter): Clear the prefix before + calling diagnostic_show_locus. + +2019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91641 + * check.c (gfc_check_is_contiguous): null() cannot be an actual + argument to is_contiguous(). + +2019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91714 + * decl.c (gfc_match_decl_type_spec): Issue errors for a few + mangled types. + +2019-09-29 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91726 + * resolve.c (gfc_expr_to_initialize): Bail out with a copy of + the original expression if the array ref is a scalar and the + array_spec has corank. + * trans-array.c (gfc_conv_array_ref): Such expressions are OK + even if the array ref codimen is zero. + * trans-expr.c (gfc_get_class_from_expr): New function taken + from gfc_get_vptr_from_expr. + (gfc_get_vptr_from_expr): Call new function. + * trans-stmt.c (trans_associate_var): If one of these is a + target expression, extract the class expression from the target + and copy its fields to a new target variable. + * trans.h : Add prototype for gfc_get_class_from_expr. + +2019-09-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> + + PR fortran/91802 + * decl.c (attr_decl1): Return MATCH_ERROR without free to avoid + bad expression type in free_expr0() ICE in rank+corank check. + +2019-09-28 Steven G. Kargl <kargl@gcc.ngu.org> + + PR fortran/91802 + * decl.c (attr_decl1): Check if rank+corank > 15. + +2019-09-28 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91864 + * gcc/fortran/io.c (match_io_element): An inquiry parameter cannot be + read into. + * gcc/fortran/match.c (gfc_match_allocate): An inquiry parameter + can be neither an allocate-object nor stat variable. + (gfc_match_deallocate): An inquiry parameter cannot be deallocated. + +2019-09-26 Alessandro Fanfarillo <afanfa@gcc.gnu.org> + + * trans-array.c (structure_alloc_comps): + Add new enum item for BCAST_ALLOC_COMP. + New argument for structure_alloc_comp, and new case to handle + recursive components in derived types. + * trans-array.c (gfc_bcast_alloc_comp): New function + used to handleco_broadcast for allocatable components + of derived types. + * trans-array.h: Add gfc_bcast_alloc_comp + * trans-intrinsics.c (conv_co_collective): Add check for + derived type variable and invocation of co_bcast_alloc_comp. + * trans.h: New data structure gfc_co_subroutines_args. + +2019-09-25 David Malcolm <dmalcolm@redhat.com> + + PR fortran/91426 + * error.c (curr_diagnostic): New static variable. + (gfc_report_diagnostic): New static function. + (gfc_warning): Replace call to diagnostic_report_diagnostic with + call to gfc_report_diagnostic. + (gfc_format_decoder): Colorize the text of %L and %C to match the + colorization used by diagnostic_show_locus. + (gfc_warning_now_at): Replace call to diagnostic_report_diagnostic with + call to gfc_report_diagnostic. + (gfc_warning_now): Likewise. + (gfc_warning_internal): Likewise. + (gfc_error_now): Likewise. + (gfc_fatal_error): Likewise. + (gfc_error_opt): Likewise. + (gfc_internal_error): Likewise. + +2019-09-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91729 + * match.c (gfc_match_select_rank): Initialise 'as' to NULL. + Check for a symtree in the selector expression before trying to + assign a value to 'as'. Revert to gfc_error and go to cleanup + after setting a MATCH_ERROR. + +2019-09-20 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/78260 + * openmp.c (gfc_resolve_oacc_declare): Reject all + non variables but accept function result variables. + * trans-openmp.c (gfc_trans_omp_clauses): Handle + function-result variables for remaing cases. + +2019-09-17 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91588 + * expr.c (check_inquiry): Remove extended component refs by + using symbol pointers. If a function argument is an associate + variable with a constant target, copy the target expression in + place of the argument expression. Check that the charlen is not + NULL before using the string length. + (gfc_check_assign): Remove extraneous space. + +2019-09-15 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91727 + * resolve.c (conformable_arrays): If array-spec is NULL, then + allocate-object is a scalar. a conformability check only occurs + for an array source-expr. + +2019-09-15 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91550 + * frontend-passes.c (do_subscript): If step equals + zero, a previuos error has been reported; do nothing + in this case. + * resolve.c (gfc_resolve_iterator): Move error checking + after type conversion. + +2019-09-14 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91557 + PR fortran/91556 + * frontend-passes.c (check_externals_procedure): Reformat argument + list. Use gfc_compare_actual_formal instead of gfc_procedure_use. + * gfortran.h (gfc_symbol): Add flag error. + * interface.c (gfc_compare_interfaces): Reformat. + (argument_rank_mismatch): Add where_formal argument. If it is + present, note that the error is between different calls. + (compare_parameter): Change warnings that previously dependended + on -Wargument-mismatch to unconditional. Issue an error / warning + on type mismatch only once. Pass where_formal to + argument_rank_mismatch for artificial variables. + (compare_actual_formal): Change warnings that previously + dependeded on -Wargument-mismatch to unconditional. + (gfc_check_typebound_override): Likewise. + (gfc_get_formal_from_actual_arglist): Set declared_at for + artificial symbol. + * invoke.texi: Extend description of -fallow-argument-mismatch. + Delete -Wargument-mismatch. + * lang.opt: Change -Wargument-mismatch to do-nothing option. + * resolve.c (resolve_structure_cons): Change warnings that + previously depended on -Wargument-mismatch to unconditional. + * trans-decl.c (generate_local_decl): Do not warn if the symbol is + artificial. + +2019-09-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91566 + * simplify.c (gfc_simplify_merge): Need to simplify expression + after insertation of parenthesis. + +2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> + + PR fortran/91716 + * trans-array.c (gfc_conv_array_initializer): Always assign the + array type of the field to the string constant. + +2019-09-13 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91717 + * dependency.c (gfc_dep_resolver): Flag identical components + and exit with return value 1 if set and no array refs. + +2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91553 + * simplify.c (gfc_convert_constant): During conversion check if the + constant is enclosed in parenthesis, and simplify expression. + +2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91642 + * io.c (gfc_match_inquire): null() cannot be in an iolength inquire + list. + +2019-09-05 Harald Anlauf <anlauf@gmx.de> + + PR fortran/91496 + * parse.c (parse_executable): Improve error messages for + improperly placed pragmas not preceeding a loop. + +2019-09-05 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91660 + * decl.c (gfc_match_decl_type_spec): Improve and restore error + message for malformed types-spec. + +2019-09-04 Steven G. Kargl <kargl@gcvc.gnu.org> + + PR fortran/91650 + * io.c (match_io_element): An output IO list item cannot be a BOZ. + +2019-09-03 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.texi: Update documentation to catch up with BOZ changes. + * invoke.texi: Fix English from previous BOZ changes commit. + +2019-09-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91589 + * primary.c (gfc_match_varspec): Return MATCH_NO on an apparent + component ref, when the primary type is intrinsic. + +2019-09-02 Steven G. Kargl <kargl@gc.gnu.org> + + PR fortran/91552 + * array.c (walk_array_constructor): New function. + (gfc_match_array_constructor): Use it. + +2019-09-01 Paul Thomas <pault@gcc.gnu.org> + + * array.c (spec_dimen_size): Check for the presence of + expressions for the bounds. + * decl.c (gfc_match_end): Add case COMP_SELECT_RANK. + * dump-parse-tree.c(show_symbol): Show the arrayspec of class + entities. + (show_code_node): Show the code for SELECT_RANK. + * expr.c (gfc_check_vardef_context): Omit the context of + variable definition for select rank associate names since the + ASSUMED RANK throws. + * gfortran.h : Add ST_SELECT_RANK and ST_RANK to enum + gfc_statement. Add select_rank_temporary to symbol attribute + structure. Add EXEC_SELECT_RANK to enum gfc_exec_op. + * match.c (match_exit_cycle): Add COMP_SELECT_RANK. + (copy_ts_from_selector_to_associate): Add as special case for + assumed rank class variables. + (select_intrinsic_set_tmp): Clean up the code by using symbols + for references to the temporary and the selector. + (select_type_set_tmp): Ditto. + (select_rank_set_tmp): New function. + (gfc_match_select_rank): New function. + (gfc_match_rank_is): New function. + * match.h : Add prototypes for gfc_match_select_rank and + gfc_match_rank_is. + * parse.c (decode_statement): Attempt to match select_rank and + rank statements. + (next_statement, gfc_ascii_statement): Add ST_SELECT_RANK. + (parse_select_rank_block): New function. + (parse_executable): Parse select rank block for ST_SELECT_RANK. + * parse.h : Add COMP_SELECT_RANK to enum gfc_compile_state. + * resolve.c (resolve_variable): Exclude select_rank_temporaries + from the check on use of ASSUMED RANK. + (gfc_resolve_expr): Make sure that unlimited polymorphic select + rank temporaries expressions are not resolved again after being + successfully resolved. + (resolve_assoc_var): Do not do the rank check for select rank + temporaries. + (resolve_select_rank): New function. + (gfc_resolve_blocks): Deal with case EXEC_SELECT_RANK. + (resolve_symbol): Exclude select rank temporaries for check on + use of ASSUMED RANK. + * st.c (gfc_free_statement): Include EXEC_SELECT_RANK. + * trans-array.c (gfc_conv_array_ref): Select rank temporaries + may have dimen == 0. + (gfc_conv_expr_descriptor): Zero the offset of select rank + temporaries. + * trans-stmt.c (copy_descriptor): New function. + (trans_associate_var): Add code to associate select rank temps. + (gfc_trans_select_rank_cases): New function. + (gfc_trans_select_rank): New function. + * trans-stmt.h : Add prototype for gfc_trans_select_rank. + trans.c (trans_code): Add select rank case. + +2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91587 + * io.c (match_filepos): MATCH_ERROR should branch to a syntax error. + +2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91551 + * intrinsic.c (sort_actual): ALLOCATED has one argument. Check for + no argument case. + +2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91565 + * simplify.c (gfc_simplify_reshape): Add additional checks of the + ORDER dummy argument. + +2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91564 + * check.c (gfc_check_kill_sub): Additional checks on status dummy + argument. + +2019-08-28 Mark Eggleston <mark.eggleston@codethink.com> + + * intrinsics.text: Corrected stated standard for intrinsics + and specific intrinsics where necessary. Also in C_SIZEOF the + printed value is T not .TRUE.. In IPARITY example wrap BOZ + constants in calls to INT. + +2019-08-27 Harald Anlauf <anlauf@gmx.de> + + PR fortran/91496 + * gfortran.h: Extend struct gfc_iterator for loop annotations. + * array.c (gfc_copy_iterator): Copy loop annotations by IVDEP, + VECTOR, and NOVECTOR pragmas. + * decl.c (gfc_match_gcc_ivdep, gfc_match_gcc_vector) + (gfc_match_gcc_novector): New matcher functions handling IVDEP, + VECTOR, and NOVECTOR pragmas. + * match.h: Declare prototypes of matcher functions handling IVDEP, + VECTOR, and NOVECTOR pragmas. + * parse.c (decode_gcc_attribute, parse_do_block) + (parse_executable): Decode IVDEP, VECTOR, and NOVECTOR pragmas; + emit warning for unrecognized pragmas instead of error. + * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add code to + emit annotations for IVDEP, VECTOR, and NOVECTOR pragmas. + * gfortran.texi: Document IVDEP, VECTOR, and NOVECTOR pragmas. + +2019-08-27 Mark Eggleston <mark.eggleston@codethink.com> + + * invoke.texi: Ensure that the option lists fit within the + margins of a PDF page. Re-worded description of + '-ffrontend-loop-interchange' so that it fits with the margins + of a PDF page. Add '-fdec-include', '-fdec-blank-format-item' + and '-fdec-format-defaults' to list of options that are enabled + by '-fdec'. + +2019-08-26 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91390 + PR fortran/91473 + * frontend-passes.c (gfc_check_externals): Make + gfc_errors_to_warnings conditional on -fallow-argument-mismatch. + * invoke.texi: Document -fallow-argument-mismatch. + * lang.opt: Add -fallow-argument-mismatch. + +2019-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91390 + PR fortran/91519 + * frontend-passes.c (check_externals_procedure): New + function. If a procedure is not in the translation unit, create + an "interface" for it, including its formal arguments. + (check_externals_code): Use check_externals_procedure for common + code with check_externals_expr. + (check_externals_expr): Vice versa. + * gfortran.h (gfc_get_formal_from_actual-arglist): New prototype. + (gfc_compare_actual_formal): New prototype. + * interface.c (compare_actual_formal): Rename to + (gfc_compare_actual_formal): New function, make global. + (gfc_get_formal_from_actual_arglist): Make global, and move here from + * trans-types.c (get_formal_from_actual_arglist): Remove here. + (gfc_get_function_type): Use gfc_get_formal_from_actual_arglist. + +2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> + + * intrinsics.text: References in 'See also:' are now on + separate lines to ensure that they always fit in the margins of + a PDF page. The column widths of tables have been adjusted + where necessary to prevent overlapping text. All program + examples now fit within the margins of a PDF page. + +2019-08-23 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/91283 + * options.c (gfc_post_options): Set flag_excess_precision instead of + flag_excess_precision_cmdline. Remove comment. + +2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> + + * intrinsics.text: Removed empty sections. The order of + sections for each intrinsic is now consistent throughout. + Stray words removed. Text in the wrong section moved. + Missing standard statement inserted. + +2019-08-23 Mark Eggleston <mark.eggleston@codethink.com> + + * intrinsics.text: Correct the return types for ZABS and CDABS. + +2019-08-22 Steven G. Kargl <kargl@gcc.gnu.org> + + * intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in + co_broadcast, co_max, co_min, co_reduce, and co_sum. + +2019-08-20 Mark Eggleston <mark.eggleston@codethink.com> + + PR fortran/89236 + * intrinsic.texi: Add GNU extension notes to DIM, MOD, MODULO. + +2019-08-19 Mark Eggleston <mark.eggleston@codethink.com> + + * gfortran.texi: Delete paragraph about integer overload errors + when initialising integer variables with BOZ constants as these + no longer occur. + +2019-08-18 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91485 + module.c (gfc_match_use): User defined operator cannot conflict with + a rename symbol. + +2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/82992 + * module.c (gfc_match_use): When renaming a module entity, search + current namespace for conflicting symbol. + +2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/78739 + * match.c (gfc_match_st_function): When matching a statement function, + need to check if the statement function name shadows the function + name. + +2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/78719 + * decl.c (get_proc_name): Check for a CLASS entity when trying to + add attributes to an entity that already has an explicit interface. + +2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91471 + * primary.c (gfc_variable_attr): Remove a gfc_internal_error(), + which cannot be reached by conforming Fortran code, but seems to + be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN + case as a no-op. + +2019-08-17 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/68401 + * trans-decl.c (gfc_build_builtin_function_decls): Replace + os_error with os_error_at decl. + * trans.c (trans_runtime_error_vararg): Modify so the error + function decl is passed directly. + (gfc_trans_runtime_error): Pass correct error function decl. + (gfc_trans_runtime_check): Likewise. + (trans_os_error_at): New function. + (gfc_call_malloc): Use trans_os_error_at. + (gfc_allocate_using_malloc): Likewise. + (gfc_call_realloc): Likewise. + * trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at. + +2019-08-16 Jeff Law <law@redhat.com> + Mark Eggleston <mark.eggleston@codethink.com> + + * gfortran.h: Add gfc_check_conflict declaration. + * symbol.c (check_conflict): Rename cfg_check_conflict and remove + static. + * symbol.c (cfg_check_conflict): Remove automatic in equivalence + conflict check. + * symbol.c (save_symbol): Add check for in equivalence to stop the + the save attribute being added. + * trans-common.c (build_equiv_decl): Add is_auto parameter and + add !is_auto to condition where TREE_STATIC (decl) is set. + * trans-common.c (build_equiv_decl): Add local variable is_auto, + set it true if an atomatic attribute is encountered in the variable + list. Call build_equiv_decl with is_auto as an additional parameter. + flag_dec_format_defaults is enabled. + * trans-common.c (accumulate_equivalence_attributes) : New subroutine. + * trans-common.c (find_equivalence) : New local variable dummy_symbol, + accumulated equivalence attributes from each symbol then check for + conflicts. + +2019-08-16 Richard Biener <rguenther@suse.de> + + * trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize + forward_branch to avoid bogus uninitialized warning. + +2019-08-15 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91443 + * frontend-passes.c (check_externals_expr): New function. + (check_externals_code): New function. + (gfc_check_externals): New function. + * gfortran.h (debug): Add prototypes for gfc_symbol * and + gfc_expr *. + (gfc_check_externals): Add prototype. + * interface.c (compare_actual_formal): Do not complain about + alternate returns if the formal argument is optional. + (gfc_procedure_use): Handle cases when an error has been issued + previously. Break long line. + * parse.c (gfc_parse_file): Call gfc_check_externals for all + external procedures. + * resolve.c (resolve_global_procedure): Remove checking of + argument list. + +2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/87991 + * resolve.c (check_data_variable): data-stmt-object with pointer + attribute requires a data-stmt-value with the target attribute. + +2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88072 + * misc.c (gfc_typename): Do not point to something that ought not to + be pointed at. + +2013-08-13 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90563 + * frontend-passes.c (insert_index): Suppress errors while + simplifying the resulting expression. + +2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/89647 + resolve.c (resolve_typebound_procedure): Allow host associated + procedure to be a binding target. While here, wrap long line. + +2019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/87993 + * expr.c (gfc_simplify_expr): Simplifcation of an array with a kind + type inquiry suffix yields a constant expression. + +2019-08-13 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/91414 + * check.c (gfc_check_random_seed): Reduce seed_size. + * intrinsic.texi (RANDOM_NUMBER): Update to match new PRNG. + +2019-08-12 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/91424 + * frontend-passes.c (do_subscript): Do not warn for an + expression a second time. Do not warn about a zero-trip loop. + (doloop_warn): Also look at contained namespaces. + +2019-08-11 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/91413 + * invoke.texi (-fmax-stack-var-size): Document increased default. + * options.c (gfc_post_options): Increase default stack var size to + 65536 bytes. + * trans-decl.c (gfc_finish_var_decl): Generate warning when local + array moved to static storage. + +2019-08-10 Steven G. Kargl <kargl@gcc.gnu.org> + + * decl.c (match_old_style_init): Use a clearer error message. + * expr.c (gfc_check_assign): Update BOZ checking to provide a stricter + adherence to the Fortran standard. Use gfc_invalid_boz () to + relax errors into warnings. + * gfortran.h (gfc_isym_id): Add new ids GFC_ISYM_DFLOAT, + GFC_ISYM_FLOAT, GFC_ISYM_REALPART, and GFC_ISYM_SNGL + * intrinsic.c (add_functions): Use new ids to split REAL generic into + REAL, FLOAT, DFLOAT, SNGL, and REALPART generics. + (gfc_intrinsic_func_interface): Allow new intrinsics in an + initialization expression + * resolve.c (resolve_operator): Deal with BOZ as operands. + Use gfc_invalid_boz to allow for errors or warnings via the + -fallow-invalid-boz option. A BOZ cannot be an operand to an + unary operator. Both operands of a binary operator cannot be BOZ. + For binary operators, convert a BOZ operand into the type and + kind of the other operand for REAL or INTEGER operand. + * trans-intrinsic.c: Use new ids to cause conversions to happen. + +2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91359 + * trans-decl.c (gfc_generate_return): Ensure something is returned + from a function. + +2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/42546 + * check.c(gfc_check_allocated): Add comment pointing to ... + * intrinsic.c(sort_actual): ... the checking done here. + +2019-08-05 Steven g. Kargl <kargl@gcc.gnu.org> + + PR fortran/91372 + * decl.c (gfc_match_data): Allow an implied do-loop to nestle against + DATA. + +2019-08-04 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88227 + * check.c (oct2bin): New function. Convert octal string to binary. + (hex2bin): New function. Convert hexidecimal string to binary. + (bin2real): New function. Convert binary string to REAL. Use + oct2bin and hex2bin. + (gfc_boz2real): Use fallback conversion bin2real. + +2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90985 + * decl.c (gfc_match_data): In free-form code, DATA be followed by + whitespace. + +2019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90986 + * match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed + by '('. + +2019-07-30 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/91296 + * interface.c (compare_actual_expr): When checking for aliasing, add + a case to handle REF_INQUIRY (e.g., foo(x%re, x%im) do not alias). + +2019-07-29 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90813 + * dump-parse-tree.c (show_global_symbol): New function. + (gfc_dump_global_symbols): New function. + * gfortran.h (gfc_traverse_gsymbol): Add prototype. + (gfc_dump_global_symbols): Likewise. + * invoke.texi: Document -fdump-fortran-global. + * lang.opt: Add -fdump-fortran-global. + * parse.c (gfc_parse_file): Handle flag_dump_fortran_global. + * symbol.c (gfc_traverse_gsymbol): New function. + * trans-decl.c (sym_identifier): New function. + (mangled_identifier): New function, doing most of the work + of gfc_sym_mangled_identifier. + (gfc_sym_mangled_identifier): Use mangled_identifier. Add mangled + identifier to global symbol table. + (get_proc_pointer_decl): Use backend decl from global identifier + if present. + +2019-07-25 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/65819 + * dependency.h (gfc_dep_resovler): Add optional argument identical. + * dependency.c (gfc_check_dependency): Do not alway return 1 if + the symbol is the same. Pass on identical to gfc_dep_resolver. + (gfc_check_element_vs_element): Whitespace fix. + (gfc_dep_resolver): Adjust comment for function. If identical is + true, return 1 if any overlap has been found. + +2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/54072 + * check.c (gfc_invalid_boz): Fix comment. + (illegal_boz_arg): New function. + (gfc_check_transfer): Use to arguments. + (gfc_check_storage_size): Ditto. + (gfc_check_complex): Remove leftover comment from BOZ patch. + * primary.c (match_boz_constant): Remove leftover comment. + +2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> + + * arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): + Move to ... + * primary.c (convert_integer, convert_real, convert_complex): ... here. + Rename and make static functions. + (match_integer_constant): Use convert_integer + (match_real_constant): Use convert_real. + (match_complex_constant: Use convert_complex. + * arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): + Remove prototypes. + * array.c (match_array_cons_element): A BOZ cannot be a data + statement value. Jump to a common exit point. + * check.c (gfc_invalid_boz): New function. Emit error or warning + for a BOZ in an invalid context. + (boz_args_check): Move to top of file to prevent need of forward + declaration. + (is_boz_constant): New function. Check that BOZ expr is constant. + (gfc_boz2real): New function. In-place conversion of BOZ literal + constant to REAL in accordance to F2018. + (gfc_boz2int): New function. In-place conversion of BOZ literal + constant to INTEGER in accordance to F2018. + (gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz. Convert BOZ + as needed. + (gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE, + BGT, BLE, and BLT intrinsic functions. + (gfc_check_cmplx): Re-organize to check kind, if present, first. + Convert BOZ real and/or imaginary parts as needed in accordance to + F2018. + (gfc_check_complex): Use gfc_invalid_boz. Convert BOZ as needed. + (gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed. + (gfc_check_dshift): Make dshift[lr] conform to F2018 standard. + gfc_check_float (gfc_expr *a) + (gfc_check_iand_ieor_ior): Make IAND, IEOR, and IOR conform to + F2018 standard. + (gfc_check_int): Conform to F2018 standard. + (gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and + INT. Simply return for a BOZ argument. See gfc_simplify_intconv. + (gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018 + standard. + (gfc_check_real): Remove incorrect comment. Check kind, if present, + first. Simply return for a BOZ argument. See gfc_simplify_real. + (gfc_check_and): Re-do error handling for BOZ arguments. Remove + special casing ts.type != BT_INTEGER or BT_LOGICAL. + * decl.c (match_old_style_init): Check for BOZ in old-style + initialization. Issue error or warning depending on + -fallow-invalid-boz option. Issue error if variable is not an + INTEGER or REAL and the value is BOZ. + * expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr. + (gfc_check_assign): Re-do error handling for a BOZ in an assignment + statement. Do in-place conversion of RHS based on LHS type of + INTEGER or REAL. + * gfortran.h (gfc_expr): Add a boz component. Remove is_boz component. + (gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes. + * interface.c (gfc_extend_assign): Guard against replacing an + intrinsic involving a BOZ literal constant on RHS. + * invoke.texi: Doument -fallow-invalid-boz. + * lang.opt: New option. -fallow-invalid-boz. + * libgfortran.h (bt): Elevate BOZ to a basic type. + * misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ. + * primary.c (convert_integer, convert_real, convert_complex): to here. + Rename and make static functions. + * primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do + error handling. Deprecate 'X' for hexidecimal and postfix notation. + Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code. + * resolve.c (resolve_ordinary_assign): Rework a RHS that is a + BOZ literal constant. Use gfc_invalid_boz to allow previous + nonstandard behavior. Remove range checking of BOZ conversion. + * simplify.c (convert_boz): Remove function. + (simplify_cmplx): Remove conversion of BOZ constants, because + conversion is done in gfc_check_cmplx. + (gfc_simplify_float): Remove conversion of BOZ constant, because + conversion is done in gfc_check_float. + (simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER. + Remove range checking for BOZ conversion. + (gfc_simplify_real): Use k, if present, to determine kind. Convert + BOZ to REAL. Remove range checking for BOZ conversion. + target-memory.c (gfc_convert_boz): Rewrite to deal with convert of + a BOZ to a REAL value. + +2019-07-21 Thomas König <tkoenig@gcc.gnu.org> + + PR libfortran/91030 + * gfortran.texi (GFORTRAN_FORMATTED_BUFFER_SIZE): Document + (GFORTRAN_UNFORMATTED_BUFFER_SIZE): Likewise. + +2019-07-16 Harald Anlauf <anlauf@gmx.de> + + PR fortran/90903 + * libgfortran.h: Add mask for -fcheck=bits option. + * options.c (gfc_handle_runtime_check_option): Add option "bits" + to run-time checks selectable via -fcheck. + * trans-intrinsic.c (gfc_conv_intrinsic_btest) + (gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits) + (gfc_conv_intrinsic_shift, gfc_conv_intrinsic_ishft) + (gfc_conv_intrinsic_ishftc): Implement run-time checks for the + POS, LEN, SHIFT, and SIZE arguments. + * gfortran.texi: Document run-time checks for bit manipulation + intrinsics. + * invoke.texi: Document new -fcheck=bits option. + +2019-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/87233 + * expr.c (check_restricted): Relax constraint C1279 which was + removed from F2008 and above. + +2019-07-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/91077 + * trans-array.c (gfc_conv_scalarized_array_ref) Delete code + that gave symbol backend decl for subref arrays and deferred + length variables. + +2019-07-05 Andrew Stubbs <ams@codesourcery.com> + + * openmp.c (resolve_omp_clauses): Add custom error messages for + parameters in map clauses. + +2019-07-03 Martin Liska <mliska@suse.cz> + + * check.c (gfc_check_c_funloc): Remove + dead assignemts. + * decl.c (variable_decl): Likewise. + * resolve.c (resolve_typebound_function): Likewise. + * simplify.c (gfc_simplify_matmul): Likewise. + (gfc_simplify_scan): Likewise. + * trans-array.c (gfc_could_be_alias): Likewise. + * trans-common.c (add_equivalences): Likewise. + * trans-expr.c (trans_class_vptr_len_assignment): Likewise. + (gfc_trans_array_constructor_copy): Likewise. + (gfc_trans_assignment_1): Likewise. + * trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise. + * trans-openmp.c (gfc_omp_finish_clause): Likewise. + * trans-types.c (gfc_get_array_descriptor_base): Likewise. + * trans.c (gfc_build_final_call): Likewise. + +2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90987 + * gfortran.dg/common_1.f: new test. + * gfortran.dg/common_26.f90: Ditto. + +2019-06-26 Steven G. Kargl <kargl@gcc.gnu.org> + + PR Fortran/90988 + ChangeLog forgotten with revision 272667 + * decl.c (access_attr_decl): Use temporary variable to reduce + unreadability of code. Normalize jumping to return. + (gfc_match_protected): Fix parsing error. Add comments to + explain code. Remove dead code. + (gfc_match_private): Use temporary variable to reduce unreadability + of code. Fix parsing error. Move code to test for blank PRIVATE. + Remove dead code. + (gfc_match_public): Move code to test for blank PUBLIC. Fix + parsing error. Remove dead code. + +2019-06-24 Jan Hubicka <jh@suse.cz> + + * trans-expr.c (gfc_conv_substring): Check that + type is array or integer prior checking string flag. + (gfc_conv_string_parameter): Likewise. + * trans-openmp.c (gfc_omp_scalar_p): Likewise. + * trans.c (gfc_build_array_ref): Likewise. + +2019-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/89782 + * io.c (gfc_resolve_dt): Check that internal units are not + character PARAMETER. + +2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/67884 + * resolve.c (deferred_requirements) : Check only the result variable. + (resolve_fl_procedure): Check deferred requirements on functions. + +2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/51991 + * decl.c (gfc_match_save): If SAVE was not seen, return MATCH_NO + instead issuing an error message and returning MATCH_ERROR. + +2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/77632 + * /decl.c (variable_decl): Mark a variable that is a target in pointer + initialization when in PROGRAM, MODULE, or SUBMODULE scope with an + implicit save. + +2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/86587 + * symbol.c (verify_bind_c_derived_type): Remove erroneous error + checking for BIND(C) and PRIVATE attributes. + +2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90937 + * trans-types.c (get_formal_from_actual_arglist): Get symbol from + current namespace so it will be freed later. If symbol is of type + character, get an empty character length. + +2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/69499 + * match.c (gfc_match_select_type): SELECT TYPE is an executable + statement, and cannot appear in MODULE or SUBMODULE scope. + +2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/69398 + * decl.c (attr_decl): Check for duplicate DIMENSION attribute for a + CLASS entity. + +2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/87907 + * resolve.c (resolve_contained_fntype): Do not dereference a NULL + pointer. + +2019-06-19 Jim MacArthur <jim.macarthur@codethink.co.uk> + Mark Eggleston <mark.eggleston@codethink.com> + + PR fortran/89103 + * gfortran.texi: Add -fdec-blank-format-item + * invoke.texi: Add option to list of options. + * invoke.texi: Add to section on Commas in FORMAT specifications. + * io.c (check_format): At FMT_RPAREN goto finished if + -fdec-blank-format-item otherwise set error string. + * lang.opt: Add new option. + * options.c (set_dec_flags): Add SET_BITFLAG for + flag_dec_format_defaults. + +2019-06-18 Julian Brown <julian@codesourcery.com> + + PR fortran/90921 + * trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses + before scanning each namespace. + +2019-06-18 Thomas Schwinge <thomas@codesourcery.com> + + PR fortran/85221 + * trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare' + directive. + +2019-06-16 Thomas Koenig <tkoenig@gcc.gnu.org> + + * dump_parse_tree (debug): Add verison for formal arglist. + Do not crash when a gfc_expr is NULL. + +2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org> + + * decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived + type. + +2019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> + + * arith.c (arith_power): Rework overflow of an integer to an integer + exponent. + +2019-06-14 Harald Anlauf <anlauf@gmx.de> + + PR fortran/90577 + PR fortran/90578 + * trans-intrinsic.c (gfc_conv_intrinsic_shift): Properly + distinguish logical/arithmetic shifts. + * intrinsic.texi: Update documentation for SHIFTR/SHIFTL/SHIFTA + (Fortran 2008) and LSHIFT/RSHIFT (GNU extensions). + +2019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/89646 + * dependency.c (gfc_check_argument_var_dependency): Suppress spurious + warnings by comparing variable names. + +2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/68544 + * resolve.c (is_dt_name): New function to compare symbol name against + list of derived types. + (resolve_actual_arglist): Use it to find wrong code. + +2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/89344 + * expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable + in SELECT TYPE construct. + +2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88810 + * dependency.c (gfc_dep_resolver): Re-arrange code to make the logic + a bit more transparent. Fix 2 nearby formatting issues. + +2019-06-13 Jakub Jelinek <jakub@redhat.com> + + * io.c (check_format): Use G_(...) instead of _(...) for error values, + append " in format string at %L" to all strings but unexpected_element, + use error as gfc_error formating string instead of + "%s in format string at %L". Formatting fixes. + +2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.h (gfc_free_dt_list): Remove prototype. + +2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90002 + * array.c (gfc_free_array_spec): When freeing an array-spec, avoid + an ICE for assumed-shape coarrays. + +2019-06-08 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/90786 + * trans-expr.c (pointer_assignment_is_proc_pointer) Remove as + it is very simple and only called from one place. + (gfc_trans_pointer_assignment): Rename non_proc_pointer_assign + as non_proc_ptr_assign. Assign to it directly, rather than call + to above, deleted function and use gfc_expr_attr instead of + only checking the reference chain. + +2019-06-08 Thomas Koenig <tkoenig@gcc.gnu.org> + Tomáš Trnka <trnka@scm.com> + + PR fortran/90744 + * trans-types.c (get_formal_from_actual_arglist): Unset typespec + flags which make no sense for procedures without explicit + interface. + +2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90539 + * trans-expr.c (gfc_conv_subref_array_arg): If the size of the + expression can be determined to be one, treat it as contiguous. + Set likelyhood of presence of an actual argument according to + PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous + according to PRED_FORTRAN_CONTIGUOUS. + +2019-05-30 Thomas Koenig <tkoenig@gcc.gnu.org> + + * gfc-internals.texi (Translating to GENERIC): New chapter. + +2019-05-30 Marek Polacek <polacek@redhat.com> + + * lang.opt (ftail-call-workaround): Fix a typo. + +2019-05-30 Jakub Jelinek <jakub@redhat.com> + + * lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths. + +2019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90539 + * gfortran.h (gfc_has_dimen_vector_ref): Add prototype. + * trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous. + (gfc_conv_is_contiguous_expr): Add prototype. + * frontend-passes.c (has_dimen_vector_ref): Remove prototype, + rename to + (gfc_has_dimen_vector_ref): New function name. + (matmul_temp_args): Use gfc_has_dimen_vector_ref. + (inline_matmul_assign): Likewise. + * trans-array.c (gfc_conv_array_parameter): Also check for absence + of a vector subscript before calling gfc_conv_subref_array_arg. + Pass additional argument to gfc_conv_subref_array_arg. + * trans-expr.c (gfc_conv_subref_array_arg): Add argument + check_contiguous. If that is true, check if the argument + is contiguous and do not repack in that case. + * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split + away most of the work into, and call + (gfc_conv_intrinsic_is_coniguous_expr): New function. + +2019-05-29 Jakub Jelinek <jakub@redhat.com> + + PR fortran/90329 + * lang.opt (fbroken-callers): Remove. + (ftail-call-workaround, ftail-call-workaround=): New options. + * gfortran.h (struct gfc_namespace): Add implicit_interface_calls. + * interface.c (gfc_procedure_use): Set implicit_interface_calls + for calls to implicit interface procedures. + * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround + instead of flag_broken_callers. If it is not 2, also require + sym->ns->implicit_interface_calls. + * invoke.texi (fbroken-callers): Remove documentation. + (ftail-call-workaround, ftail-call-workaround=): Document. + +2019-05-26 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90539 + * trans-types.c (get_formal_from_actual_arglist): Set rank + and lower bound for assumed size arguments. + +2019-05-22 Andrew Stubbs <ams@codesourcery.com> + + * trans-stmt.c (gfc_trans_critical): Use size_type_node for + gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls. + (gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all + call. + +2019-05-22 Jeff Law <law@redhat.com> + Mark Eggleston <mark.eggleston@codethink.com> + + PR fortran/89100 + * gfortran.texi: Add Default widths for F, G and I format + descriptors to Extensions section. + * invoke.texi: Add -fdec-format-defaults + * io.c (check_format): Use default widths for i, f and g when + flag_dec_format_defaults is enabled. + * lang.opt: Add new option. + * options.c (set_dec_flags): Add SET_BITFLAG for + flag_dec_format_defaults. + +2019-05-21 Janne Blomqvist <jb@gcc.gnu.org> + + PR libfortran/90038 + * intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new + wait=.false. implementation. + +2019-05-20 Mark Eggleston <markeggleston@codethink.com> + + * gfortran.texi: Remove reference to the ASSIGN statement, capitalise + complex, state that padding is with spaces and modify the Hollerith + constant examples. + +2019-05-19 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/90498 + * trans-stmt.c (trans_associate_var) Do not use the saved + descriptor if the expression is a COMPONENT_REF. + +2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90329 + * invoke.texi: Document -fbroken-callers. + * lang.opt: Add -fbroken-callers. + * trans-decl.c (create_function_arglist): Only set + DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set. + +2019-05-17 Thomas Schwinge <thomas@codesourcery.com> + + PR fortran/89433 + * f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp + declare target". + * trans-decl.c (add_attributes_to_decl): Refer to OpenACC + 'routine' clauses from "omp declare target" attribute. + +2019-05-16 Martin Sebor <msebor@redhat.com> + + * gfortranspec.c (append_arg): Spell out the word "argument." + +2019-05-16 Jakub Jelinek <jakub@redhat.com> + + PR fortran/90329 + * trans-decl.c (create_function_arglist): Set + DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if + len is constant. + +2019-05-15 Janne Blomqvist <jb@gcc.gnu.org> + + * parse.c (gfc_parse_file): Remove translation string markers. + +2019-05-12 Janne Blomqvist <jb@gcc.gnu.org> + + * dump-parse-tree.c (get_c_type_name): Use macros for complex type + names. + * parse.c (gfc_parse_file): Define complex macros, add CPP support + when printing C prototypes. + +2019-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/61968 + * interface.c (compare_actual_formal): Do not create a vtab if + the actual argument is assumed type. + +2019-05-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/90093 + * trans-decl.c (convert_CFI_desc): Test that the dummy is + present before doing any of the conversions. + + PR fortran/90352 + * decl.c (gfc_verify_c_interop_param): Restore the error for + charlen > 1 actual arguments passed to bind(C) procs. + Clean up trailing white space. + + PR fortran/90355 + * trans-array.c (gfc_trans_create_temp_array): Set the 'span' + field to the element length for all types. + (gfc_conv_expr_descriptor): The force_no_tmp flag is used to + prevent temporary creation, especially for substrings. + * trans-decl.c (gfc_trans_deferred_vars): Rather than assert + that the backend decl for the string length is non-null, use it + as a condition before calling gfc_trans_vla_type_sizes. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp' + is set before calling gfc_conv_expr_descriptor. + * trans.c (get_array_span): Move the code for extracting 'span' + from gfc_build_array_ref to this function. This is specific to + descriptors that are component and indirect references. + * trans.h : Add the force_no_tmp flag bitfield to gfc_se. + +2019-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/90351 + PR fortran/90329 + * dump-parse-tree.c: Include version.h. + (gfc_dump_external_c_prototypes): New function. + (get_c_type_name): Select "char" as a name for a simple char. + Adjust to handling external functions. Also handle complex. + (write_decl): Add argument bind_c. Adjust for dumping of external + procedures. + (write_proc): Likewise. + (write_interop_decl): Add bind_c argument to call of write_proc. + * gfortran.h: Add prototype for gfc_dump_external_c_prototypes. + * lang.opt: Add -fc-prototypes-external flag. + * parse.c (gfc_parse_file): Move dumping of BIND(C) prototypes. + Call gfc_dump_external_c_prototypes if option is set. + * invoke.texi: Document -fc-prototypes-external. + +2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90290 + * match.c (gfc_match_stopcode): Check F2008 condition on stop code. + +2019-05-01 Andrew Benson <abensonca@gmail.com> + + * module.c (write_module): Initialize module_column before writing + module to ensure line break occurs at correct column. + +2019-05-01 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/60144 + * match.c (gfc_match_parens): Change the location for missing ')'. + (gfc_match_if): Detect a missing '('. Remove the spurious named + constant error. Change the wording of some errors. + (gfc_match_else): Change the wording of an error. + (gfc_match_elseif): Detect a missing '('. Improve the matching + process to get a better syntax analysis. + +2019-04-19 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/90166 + * decl.c (in_module_or_interface): New function to check that the + current state is in a module, submodule, or interface. + (gfc_match_prefix): Use it. + +2019-04-22 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/57284 + * resolve.c (find_array_spec): If this is a class expression + and the symbol and component array specs are the same, this is + not an error. + *trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol + argument, has no namespace, it has come from the interface + mapping and the _data component must be accessed directly. + +2019-04-17 Thomas Schwinge <thomas@codesourcery.com> + + PR fortran/90048 + * openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for + OpenACC, too. + (gfc_resolve_oacc_blocks): Populate sharing_clauses with private + clauses. + +2019-04-14 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/89843 + * trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed + rank dummies of bind C procs require deferred initialization. + (convert_CFI_desc): New procedure to convert incoming CFI + descriptors to gfc types and back again. + (gfc_trans_deferred_vars): Call it. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI + descriptor pointer. Free the descriptor in all cases. + + PR fortran/89846 + * expr.c (is_CFI_desc): New function. + (is_subref_array): Tidy up by referencing the symbol directly. + * gfortran.h : Prototype for is_CFI_desc. + * trans_array.c (get_CFI_desc): New function. + (gfc_get_array_span, gfc_conv_scalarized_array_ref, + gfc_conv_array_ref): Use it. + * trans.c (get_array_span): Extract the span from descriptors + that are indirect references. + + PR fortran/90022 + * trans-decl.c (gfc_get_symbol_decl): Make sure that the se + expression is a pointer type before converting it to the symbol + backend_decl type. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate + temporary creation for intent(in). + +2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/79842 + * module.c (gfc_use_module): use complete sentences. + +2019-04-11 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR translation/89939 + * frontend-passes.c (B_ERROR): Delete macro. + (C_ERROR): Delete macro. + (B_ERROR_1): New macro. + (C_ERROR_1): New macro. + (C_ERROR_2): New macro. + (inline_matmul_assign): Use new macros. + (call_external_blas): Likewise. + +2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87352 + * gfortran.h (gfc_component): Add finalized field. + * class.c (finalize_component): If the component is already + finalized, return early. Set component->finalized on exit. + +2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/89981 + * resolve.c (resolve_global_procedure): If the global symbol is an + ENTRY, also look up its name among the entries. + +2019-04-04 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89904 + * check.c (gfc_check_transfer): Reject procedures as actual + arguments for SOURCE and MOLD of TRANSFER intrinsic. + +2019-04-03 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/68567 + * expr.c (gfc_reduce_init_expr): Add extra check to avoid + dereferencing a null pointer. + +2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/89375 + * expr.c (comp_pointer): Remove redundant condition. + +2019-03-31 Harald Anlauf <anlauf@gmx.de> + + PR fortran/83515 + PR fortran/85797 + * trans-types.c (gfc_typenode_for_spec): Handle conversion for + procedure pointers. + * target-memory.c (gfc_element_size): Handle size determination + for procedure pointers. + +2019-03-31 Thomas Koenig <tkoenig@gcc.gnu.org> + + * dump-parse-tree.c (debug): Add for symbol_attribute *, + symbol_attribute and gfc_ref * arguments. + +2019-03-30 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/89841 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal + argument attributes rather than those of the actual argument. + + PR fortran/89842 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call + 'set_dtype_for_unallocated' for any type of arrayspec. + +2019-03-27 Janus Weil <janus@gcc.gnu.org> + + PR fortran/85537 + * expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures + in procedure pointer initialization. + +2019-03-27 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88247 + * expr.c (is_subref_array): Permit substrings to be detected + as subref arrays. + * trans-array.c (get_array_ctor_var_strlen): Obtain the length + of deferred length strings. Handle substrings with a NULL end + expression. + (trans_array_constructor): Remove an unnecessary blank line. + (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl' + is a pointer array. + (get_array_charlen): If the expression is an array, convert the + first element of the constructor and use its string length. Get + a new charlen if necessary. + (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array + constructor expressions. If the ss_info string length is + available, use that to set the span of character arrays. + * trans-expr.c (gfc_get_expr_charlen): Handle substrings + * trans-stmt.c (trans_associate_var): Set the pointer array + flag for variable targets and constant array constructors. Take + care not to reset the string length or the span in the case of + expressions that are not converted as direct by reference. + +2019-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * intrinsic.texi (MINLOC): Fix typo in BACK argument documentation. + (MAXLOC): Likewise. + +2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/78865 + * interface.c (compare_actual_formal): Change errors about + missing or extra to gfc_error_now to make sure they are issued. + Change "spec" to "specifier" in message. + * resolve.c (resolve_global_procedure): Also check for mismatching + interface with global symbols if the namespace has already been + resolved. + +2019-03-21 Thomas Schwinge <thomas@codesourcery.com> + + PR fortran/72741 + * openmp.c (gfc_match_oacc_routine): Set the level of parallelism + for all variants. + (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. + + PR fortran/89773 + * gfortran.h (gfc_oacc_routine_name): Add loc member. + (gfc_resolve_oacc_routines): Declare. + * openmp.c (gfc_match_oacc_routine): Move some error checking + into... + (gfc_resolve_oacc_routines): ... this new function. + * resolve.c (resolve_codes): Call it. + + PR fortran/72741 + * openmp.c (gfc_match_oacc_routine): Clarify. + + PR fortran/72741 + * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. + (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, + AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, + AB_OACC_ROUTINE_LOP_SEQ. + (attr_bits): Add these. + (mio_symbol_attribute): Handle these. + +2019-03-20 Janus Weil <janus@gcc.gnu.org> + + PR fortran/71861 + * symbol.c (check_conflict): ABSTRACT attribute conflicts with + INTRINSIC attribute. + +2019-03-18 Thomas Koenig <tkoeng@gcc.gnu.org> + + PR fortran/68009 + * iresolve.c: Include trans.h. + (gfc_resolve_fe_runtine_error): Set backend_decl on + resolved_sym. + +2019-03-17 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/88008 + * gfortran.h (expr_t): Add EXPR_UNKNOWN. + * expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement. + (gfc_simplify_expr): Likewise. + * module.c (mio_expr): Likewise. + * resovle.c (extract_compcall_passed_object): Issue error on + unknown type. + (check_typebound_baseobject): Issue error on wrong type. + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Add + EXPR_UNKNOWN to switch statement. + +2019-03-16 Jakub Jelinek <jakub@redhat.com> + + PR fortran/89724 + * scanner.c (load_line): Remove linenum and current_line static + variables, add warned_tabs automatic variable. Use current_file->line + instead of current_line and warned_tabs boolean to avoid diagnosing + tabs multiple times on the same line. + +2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/84394 + * symbol.c (gfc_add_subroutine): If we are encountering a + subrtoutine within a BLOCK DATA and the name starts with an + underscore, do not check. + +2019-03-15 Harald Anlauf <anlauf@gmx.de> + + PR fortran/60091 + * expr.c (gfc_check_pointer_assign): Correct and improve error + messages for invalid pointer assignments. + +2019-03-14 Thomas Koenig <tkoenig@gcc.gnu.org> + + * gfortran.texi: Document Q edit descriptor under + "Extensions not implemented in GNU Fortran". + +2019-03-13 Harald Anlauf <anlauf@gmx.de> + + PR fortran/87045 + * trans-expr.c (gfc_trans_pointer_assignment): Move check for same + string length so that we do not get false errors for deferred + length. + +2019-03-13 Janus Weil <janus@gcc.gnu.org> + + PR fortran/89601 + * decl.c (gfc_match_formal_arglist): Reject empty type parameter lists. + (gfc_match_derived_decl): Mark as PDT only if type parameter list was + matched successfully. + +2019-03-13 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/66695 + PR fortran/77746 + PR fortran/79485 + * gfortran.h (gfc_symbol): Add bind_c component. + (gfc_get_gsymbol): Add argument bind_c. + * decl.c (add_global_entry): Add bind_c argument to + gfc_get_symbol. + * parse.c (parse_block_data): Likewise. + (parse_module): Likewise. + (add_global_procedure): Likewise. + (add_global_program): Likewise. + * resolve.c (resolve_common_blocks): Likewise. + (resolve_global_procedure): Likewise. + (gfc_verify_binding_labels): Likewise. + * symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c + in gsym. + * trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument + to gfc_get_symbol. + (gfc_get_extern_function_decl): If the sym has a binding label + and it cannot be found in the global symbol tabel, it is the wrong + one and vice versa. + +2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87673 + * match.c (gfc_match_type_spec): Remove call to + gfc_resolve_expr for character length. + +2019-03-12 Martin Liska <mliska@suse.cz> + + * decl.c (add_init_expr_to_sym): Replace usage of 'can't' + with 'cannot'. + (variable_decl): Likewise. + (cray_pointer_decl): Likewise. + (match_binding_attributes): Likewise. + * f95-lang.c (gfc_init): Likewise. + * interface.c (gfc_check_typebound_override): Likewise. + * intrinsic.c (make_generic): Likewise. + * module.c (dump_module): Likewise. + (gfc_use_module): Likewise. + * primary.c (gfc_convert_to_structure_constructor): Likewise. + * resolve.c (resolve_entries): Likewise. + (check_generic_tbp_ambiguity): Likewise. + (get_checked_tb_operator_target): Likewise. + * scanner.c (load_file): Likewise. + * trans-expr.c (gfc_conv_intrinsic_to_class): Likewise. + +2019-03-12 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/89363 + PR fortran/89364 + * trans-expr.c (set_dtype_for_unallocated): New function. + (gfc_conv_gfc_desc_to_cfi_desc): Call it for allocatable and + pointer arguments. + (gfc_conv_procedure_call): Likewise. Also, set the ubound of + the final dimension to -1 for assumed rank formal args that are + associated with assumed size arrays. + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Return -1 for + the final dimension of assumed rank entities that are argument + associated with assumed size arrays. + (gfc_conv_intrinsic_shape): Likewise return -1 for the final + dimension of the shape intrinsic. + +2019-03-11 Jakub Jelinek <jakub@redhat.com> + + PR fortran/89651 + * trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING + on decl if adding COND_EXPR for allocatable. + (gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest. + +2019-03-11 Martin Liska <mliska@suse.cz> + + * decl.c (match_record_decl): Wrap an option name + in a string format message and fix GNU coding style. + (gfc_match_pointer): Likewise. + * expr.c (find_array_section): Likewise. + * intrinsic.c (gfc_is_intrinsic): Likewise. + * options.c (gfc_post_options): Likewise. + * primary.c (match_integer_constant): Likewise. + * trans-common.c (translate_common): Likewise. + +2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/66089 + * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): + Return false if a scalar tempoary is needed. + (gfc_walk_variable_expr): Fix up class refs. + +2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87734 + * symbol.c (gfc_add_procedure): Only throw an error if the + procedure has not been declared either PUBLIC or PRIVATE. + +2019-03-09 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/71544 + * trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of + C_PTR and C_FUNPTR. + (create_fn_spec): Mark argument as escaping if ts->is_c_interop is set. + +2019-03-09 Janus Weil <janus@gcc.gnu.org> + + PR fortran/84504 + * expr.c (gfc_check_assign_symbol): Deal with procedure pointers to + pointer-valued functions. + +2019-03-09 Thomas König <tkoenig@gcc.gnu.org> + + PR fortran/71203 + * decl.c (add_init_expr_to_sym): Add shape if init has none. Add + asserts that it has to be an EXPR_ARRAY in this case. + +2019-03-08 Jakub Jelinek <jakub@redhat.com> + + PR other/80058 + * arith.c (gfc_complex2complex): Avoid two spaces in the middle of + diagnostics. + * resolve.c (resolve_allocate_expr): Likewise. + +2019-03-06 Harald Anlauf <anlauf@gmx.de> + + PR fortran/71203 + * expr.c (simplify_const_ref): Avoid null pointer dereference. + +2019-03-03 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/77583 + * symbol.c (check_conflict): Check for valid procedure name + passed to error reporting routine. + +2019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/72714 + * resolve.c (resolve_allocate_expr): Add some tests for coarrays. + +2019-03-02 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89516 + * check.c (gfc_calculate_transfer_sizes): Correct checks for cases + where storage size of elements of MOLD is 0. + +2019-02-28 Thomas Schwinge <thomas@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + PR fortran/72741 + PR fortran/89433 + * openmp.c (gfc_match_oacc_routine): Handle repeated use of the + Fortran OpenACC 'routine' directive. + + PR fortran/72741 + * gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR. + * openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it. + * trans-decl.c (add_attributes_to_decl): Likewise. + + PR fortran/72741 + PR fortran/89433 + * openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols. + +2019-02-26 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89492 + * check.c (gfc_calculate_transfer_sizes): Handle cases where + storage size of elements of MOLD is 0. + +2019-02-26 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/89496 + * trans-types.c (get_formal_from_actual_arglist): If + the actual arglist has no expression, the corresponding + formal arglist is an alternate return. + +2019-02-26 Uroš Bizjak <ubizjak@gmail.com> + + * invoke.texi (-ffpe-trap): Use @var for every item in the list. + +2019-02-26 Jakub Jelinek <jakub@redhat.com> + + PR fortran/43210 + * trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead + of duplicating the initializer possibly many times. + +2019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/89174 + * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold + to arguments. If we are dealing with a MOLD, call + gfc_expr_to_initialize(). + * trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true + to gfc_find_and_cut_at_last_class_ref. + * trans.h (gfc_find_and_cut_at_last_class_ref): Add optional + argument is_mold with default false. + +2019-02-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89266 + PR fortran/88326 + * target-memory.c (gfc_element_size): Return false if element size + cannot be determined; element size is returned separately. + (gfc_target_expr_size): Return false if expression size cannot be + determined; expression size is returned separately. + * target-memory.h: Adjust prototypes. + * check.c (gfc_calculate_transfer_sizes): Adjust references to + gfc_target_expr_size, gfc_element_size. + * arith.c (hollerith2representation): Likewise. + * class.c (find_intrinsic_vtab): Likewise. + * simplify.c (gfc_simplify_sizeof): Likewise. + +2019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/84387 + * trans-io.c (transfer_expr): Do not return if there are no + components to the derived type or class. + +2019-02-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88117 + * resolve.c (deferred_op_assign): Return if the lhs expression + has the pointer attribute. + * trans-expr.c (gfc_trans_assignment_1): Do not fix the string + length if the lhs expression has the pointer attribute. + +2019-02-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/89385 + PR fortran/89366 + * decl.c (gfc_verify_c_interop_param): Restriction on string + length being one is lifted for F2018. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar + characters with intent in, make a temporary and copy the result + of the expression evaluation into it. + (gfc_conv_procedure_call): Set a flag for character formal args + having a character length that is not unity. If the procedure + is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case. + Also, extend bind C calls to unconditionally convert both + pointers and allocatable expressions. + +2019-02-23 David Malcolm <dmalcolm@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR middle-end/88074 + * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use + mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p. + (norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t. + +2019-02-22 Harald Anlauf <anlauf@gmx.de> + + PR fortran/83057 + * io.c (gfc_match_open): Fix logic in checks of OPEN statement + when NEWUNIT= is specified. + +2019-02-22 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/89431 + * gfortran.texi: Fix documentation to match the implementation. + +2019-02-22 Thomas Schwinge <thomas@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + PR fortran/72741 + * gfortran.h (oacc_routine_lop): New enum. + (symbol_attribute): Use it. + * openmp.c (gfc_oacc_routine_dims): Replace with... + (gfc_oacc_routine_lop): ... this new function. + (gfc_match_oacc_routine): Adjust. + * trans-decl.c (add_attributes_to_decl): Likewise. + +2019-02-22 Thomas Schwinge <thomas@codesourcery.com> + + * openmp.c (gfc_match_oacc_declare): Revert earlier changes. + +2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> + + * dump-parse-tree.c (debug): Implement for gfc_expr *, + gfc_typespec *, gfc_typespec and gfc_symbol *. + +2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/86119 + * class.c (gfc_get_len_component): Add argument k for kind. + If the kind of the resulting expression is not equal to k, + convert it. + * gfortran.h (gfc_len_component): Adjust prototype. + * simplify.c (gfc_simplify_len): Pass kind to + gfc_get_len_component. + +2019-02-20 Martin Liska <mliska@suse.cz> + + * gfortran.texi: Change singular to plural. + +2019-02-20 Martin Liska <mliska@suse.cz> + + * gfortran.texi: Document Fortran header directive. + +2019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/89384 + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy + argument is contiguous and the actual argument may not be, + use gfc_conv_subref_array_arg. + +2019-02-19 Thomas Schwinge <thomas@codesourcery.com> + + PR c/87924 + * openmp.c (gfc_match_omp_clauses): Add representation of wait clause + without argument as 'wait (GOMP_ASYNC_NOVAL)'. + +2019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87689 + * trans-decl.c (gfc_get_extern_function_decl): Add argument + actual_args and pass it through to gfc_get_function_type. + * trans-expr.c (conv_function_val): Add argument actual_args + and pass it on to gfc_get_extern_function_decl. + (conv_procedure_call): Pass actual arguments to conv_function_val. + * trans-types.c (get_formal_from_actual_arglist): New function. + (gfc_get_function_type): Add argument actual_args. Generate + formal args from actual args if necessary. + * trans-types.h (gfc_get_function_type): Add optional argument. + * trans.h (gfc_get_extern_function_decl): Add optional argument. + +2019-02-18 Martin Liska <mliska@suse.cz> + + * decl.c (gfc_match_gcc_builtin): Add support for filtering + of builtin directive based on multilib ABI name. + +2019-02-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/88299 + * resolve.c (resolve_common_blocks,resolve_common_vars): Move + check for obsolent COMMON feature in F2018 to better place. + +2019-02-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89077 + * decl.c (gfc_set_constant_character_len): Clear original string + representation after padding has been performed to target length. + +2019-02-16 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/88074 + * simplify.c (simplify_transformation_to_array): Run post_op + immediately after processing corresponding row, rather than at the + end. + (norm2_scale): New variable. + (add_squared): Rename to ... + (norm2_add_squared): ... this. Scale down operand and/or result + if needed. + (do_sqrt): Rename to ... + (norm2_do_sqrt): ... this. Handle the result == e case. Scale up + result and clear norm2_scale. + (gfc_simplify_norm2): Clear norm2_scale. Change add_squared to + norm2_add_squared and &do_sqrt to norm2_do_sqrt. Scale up result + and clear norm2_scale again. + +2019-02-17 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/71066 + * trans-decl.c (generate_coarray_sym_init): For an array + constructor in a DATA statement of a coarray variable, set the + rank to 1 to avoid confusion later on. If the constructor + contains only one value, use that for initiailizig. + +2019-02-14 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/81552 + * gfortran.h (gfc_option_t): Make flag_init_integer_value a long. + * options.c (gfc_handle_option): Use strtol instead of atoi. + * invoke.texi: Document -finit-integer behavior in more detail. + +2019-02-14 Harald Anlauf <anlauf@gmx.de> + + PR fortran/88248 + * symbol.c: Move check for labeled DO statement from + gfc_define_st_label to gfc_reference_st_label. + +2019-02-14 Cesar Philippidis <cesar@codesourcery.com> + + PR fortran/72715 + * openmp.c (resolve_oacc_nested_loops): Error on do concurrent + loops. + +2019-02-13 Martin Liska <mliska@suse.cz> + + PR fortran/88649 + * resolve.c (resolve_operator): Initialize 't' right + after function entry. Skip switch (e->value.op.op) + for -fdec operands that become function calls. + +2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/71723 + * expr.c (gfc_check_assign): Add argument is_init_expr. If we are + looking at an init expression, issue error if the target is not a + TARGET and we are not looking at a procedure pointer. + * gfortran.h (gfc_check_assign): Add optional argument + is_init_expr. + +2019-02-09 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89077 + * resolve.c (gfc_resolve_substring_charlen): Check substring + length for constantness prior to general calculation of length. + +2019-02-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/89200 + * trans-array.c (gfc_trans_create_temp_array): Set the 'span' + field for derived types. + +2019-02-04 Harald Anlauf <anlauf@gmx.de> + + PR fortran/89077 + * decl.c (add_init_expr_to_sym): Copy length of string initializer + to declared symbol. + +2019-02-04 Martin Liska <mliska@suse.cz> + + PR fortran/89185 + * resolve.c (resolve_ref): Remove breakout variable as + we need to prevent prev = &(*prev)->next to happen + with *prev == NULL. + +2019-02-04 Martin Liska <mliska@suse.cz> + + PR fortran/88912 + * scanner.c (load_file): Report error for -fpre-include + file and do not ICE. + +2019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/81344 + * invoke.texi: Document the behavior of repeated -ffpe-trap + and -ffpe-summary. + +2019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/88298 + * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set. + * gfortran.h (gfc_expr): Add flag do_not_warn. + * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if + no warning is desired. + +2019-02-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88393 + * trans-expr.c (gfc_conv_procedure_call): For derived entities, + passed in parentheses to class formals, invert the order of + copying allocatable components to taking the _data of the + class expression. + +2019-02-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88980 + * trans-array.c (gfc_array_init_size): Add element_size to the + arguments. + (gfc_array_allocate): Remove the recalculation of the size of + the element and use element_size from the call to the above. + Unconditionally set the span field of the descriptor. + +2019-02-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88685 + * expr.c (is_subref_array): Move the check for class pointer + dummy arrays to after the reference check. If we haven't seen + an array reference other than an element and a component is not + class or derived, return false. + +2019-02-01 Jakub Jelinek <jakub@redhat.com> + + PR fortran/83246 + PR fortran/89084 + * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs + if sym->ns->construct_entities rather than if + sym->ns->parent->code->op == EXEC_BLOCK. + +2019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/88669 + * resolve.c (resolve_component): If the reference is a BT_CLASS, + copy the contiguous attribute from the reference and use the + correct attributes. + +2019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/52564 + * io.c (match_io): Add check for comma after '*' without subsequent + IO list. + +2019-01-30 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/52884 + * invoke.texi: Document the promotion of double precision + constants. + +2019-01-29 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/57048 + * interface.c (gfc_compare_types): If a derived type and an + integer both have a derived type, and they are identical, + this is a C binding type and compares equal. + +2019-01-26 Harald Anlauf <anlauf@gmx.de> + + PR fortran/57553 + * expr.c (check_inquiry): Add list of inquiry functions allowed in + constant expressions for F2008+. + +2019-01-25 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/85780 + * decl.c (gfc_match_subroutine): Check for conflict between BIND(C) + and alternative return. + +2019-01-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/88929 + * trans-array.c (gfc_conv_descriptor_elem_len): New function. + * trans-array.h : Add prototype for above. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of + assumed rank arrays being flagged by rank = -1 in expressions. + Intent in arrays need a pointer to a copy of the data to be + assigned to the descriptor passed for conversion. This should + then be freed, together with the CFI descriptor on return from + the C call. + +2019-01-22 Harald Anlauf <anlauf@gmx.de> + + PR fortran/88579 + * trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer + and (- 2**e) ** integer. + +2019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/37835 + * resolve.c (resolve_types): Add !flag_automatic. + * symbol.c (gfc_add_save): Silence warnings. + +2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/77960 + * io.c (match_io_element): input-item cannot be an external function. + +2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> + Paul Thomas <pault@gcc.gnu.org> + + PR fortran/56789 + * trans-expr.c (gfc_conv_procedure_call): Call + gfc_conv_subref_array_arg if the formal arg is contiguous + and the actual arg may not be. + +2019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/88871 + * resolve.c (resolve_ref): Fix logic for removal of + reference. + +2019-01-19 Jakub Jelinek <jakub@redhat.com> + + PR fortran/88902 + * trans-decl.c (gfc_get_symbol_decl): Don't add length to function + or parent function if it has been added there already. + +2019-01-15 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/43136 + * resolve.c (resolve_array_ref): Add equal_length argument; set it + if the length of the substring equals that of the orignal + variable. + (resolve_ref): Remove the substring if it is equal in length to + the original variable, unless it is an EXPR_SUBSTRING). + +2019-01-15 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/81849 + * resolve.c (resolve_symbol): Host associated varaibles can appear + in the specification statement of a RESULT array. + +2019-01-15 Paul Thomas <pault@gcc.gnu.org> + + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs + that are indirect references; ie. dummy arguments. + +2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org> + + PR fortran/88803 + * gfortran.texi: Replace @xref with @ref and adjust the sentence. + +2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/57992 + * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack + functions with contiguous results. + +2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/59345 + * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not + pack/unpack results of functions which return an explicit-shaped + or allocatable array. + +2019-01-12 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/61765 + * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif + structure into independent if's with a return to simplify logic. + Avoid a check for ENTRY name with bind(c). + +2019-01-12 Paul Thomas <pault@gcc.gnu.org> + + * gfortran.texi: Add description in sections on TS 29113 and + further interoperability with C. + * trans-array.c (gfc_conv_descriptor_attribute): New function. + (gfc_get_dataptr_offset): Remove static function attribute. + * trans-array.h: Add prototypes for above functions. + * trans-decl.c: Add declarations for the library functions + cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function. + (gfc_conv_procedure_call): Call it for scalar and array actual + arguments, when the formal arguments are bind_c with assumed + shape or assumed rank. + * trans.h: External declarations for gfor_fndecl_cfi_to_gfc + and gfor_fndecl_gfc_to_cfi. + +2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/35031 + * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby + mis-indentation. + +2019-01-11 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/85956 + PR lto/88733 + * trans-openmp.c: Include attribs.h. + (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle + VAR_DECL max bound with "omp dummy var" attribute like NULL or + error_mark_node - recompute number of elts independently. + +2019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/59345 + * trans-array.c (gfc_conv_parameter_array): Temporary + arrays generated for expressions do not need to be repacked. + +2019-01-10 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/86322 + * decl.c (top_var_list): Set locus of expr. + (gfc_match_data): Detect pointer on non-rightmost part-refs. + +2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88376 + * resolve.c (is_illegal_recursion): Remove an assert(). + +2019-01-09 Sandra Loosemore <sandra@codesourcery.com> + + PR other/16615 + * expr.c: Change "can not" to "cannot". + +2019-01-09 Sandra Loosemore <sandra@codesourcery.com> + + PR other/16615 + * class.c: Mechanically replace "can not" with "cannot". + * decl.c: Likewise. + * expr.c: Likewise. + * gfc-internals.texi: Likewise. + * intrinsic.texi: Likewise. + * invoke.texi: Likewise. + * io.c: Likewise. + * match.c: Likewise. + * parse.c: Likewise. + * primary.c: Likewise. + * resolve.c: Likewise. + * symbol.c: Likewise. + * trans-array.c: Likewise. + * trans-decl.c: Likewise. + * trans-intrinsic.c: Likewise. + * trans-stmt.c: Likewise. + +2019-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/68426 + * simplify.c (gfc_simplify_spread): Also simplify if the + type of source is an EXPR_STRUCTURE. + +2019-01-08 Janus Weil <janus@gcc.gnu.org> + + PR fortran/88047 + * class.c (gfc_find_vtab): For polymorphic typespecs, the components of + the class container may not be available (in case of invalid code). + +2019-01-08 Richard Biener <rguenther@suse.de> + + PR fortran/88611 + * trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_* + directly build the expected GENERIC tree. + +2019-01-07 Thomas Koenig <tkoenig@gcc.gnu.org> + Harald Anlauf <anlauf@gmx.de> + Tobias Burnus <burnus@gcc.gnu.org> + + PR fortran/45424 + * check.c (gfc_check_is_contiguous): New function. + * expr.c (gfc_is_not_contiguous): New function. + * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS. + Add prototype for gfc_is_not_contiguous. + * intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS. + (add_function): Add is_contiguous. + * intrinsic.h: Add prototypes for gfc_check_is_contiguous, + gfc_simplify_is_contiguous and gfc_resolve_is_contiguous. + * intrinsic.texi: Add IS_CONTIGUOUS. + * iresolve.c (gfc_resolve_is_contiguous): New function. + * simplify.c (gfc_simplify_is_contiguous): New function. + * trans-decl.c (gfor_fncecl_is_contiguous0): New variable. + (gfc_build_intrinsic_function_decl): Add it. + * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New + function. + (gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS. + +2019-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/88658 + * gfortran.h: Add macro gfc_real_4_kind + * simplify.c (simplify_min_max): Special case for the types of + AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of + their arguments. + +2019-01-05 Janus Weil <janus@gcc.gnu.org> + + PR fortran/88009 + * class.c (gfc_find_derived_vtab): Mark the _final component as + artificial. + (find_intrinsic_vtab): Ditto. Also add an extra check to avoid + dereferencing a null pointer and adjust indentation. + * resolve.c (resolve_fl_variable): Add extra check to avoid + dereferencing a null pointer. Move variable declarations to local scope. + (resolve_fl_procedure): Add extra check to avoid dereferencing a null + pointer. + * symbol.c (check_conflict): Suppress errors for artificial symbols. + +2019-01-01 Steven G. Kargl <kargl@gcc.gnu.org> + + * parse.c (decode_statement): Suppress "Unclassifiable statement" + error if previous error messages were emittes. + +2019-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/82743 + * primary.c (gfc_convert_to_structure_constructor): If a character + in a constructor is too long, add a warning with + -Wcharacter-truncation. + +2019-01-01 Jakub Jelinek <jakub@redhat.com> + + Update copyright years. + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + * gfc-internals.texi: Bump @copying's copyright year. + * gfortran.texi: Ditto. + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + +Copyright (C) 2019 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/fortran/gfc-internals.texi b/gcc/fortran/gfc-internals.texi index 2c30aa6..e74d5d6 100644 --- a/gcc/fortran/gfc-internals.texi +++ b/gcc/fortran/gfc-internals.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfc-internals.info -@set copyrights-gfortran 2007-2019 +@set copyrights-gfortran 2007-2020 @include gcc-common.texi diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 96be58b..4cf8b3a 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfortran.info -@set copyrights-gfortran 1999-2019 +@set copyrights-gfortran 1999-2020 @include gcc-common.texi diff --git a/gcc/fortran/gfortranspec.c b/gcc/fortran/gfortranspec.c index 5b0fe4d..4c7685f 100644 --- a/gcc/fortran/gfortranspec.c +++ b/gcc/fortran/gfortranspec.c @@ -278,7 +278,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, case OPT__version: printf ("GNU Fortran %s%s\n", pkgversion_string, version_string); - printf ("Copyright %s 2019 Free Software Foundation, Inc.\n", + printf ("Copyright %s 2020 Free Software Foundation, Inc.\n", _("(C)")); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index 7e01e94..823cb9c 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -1,5 +1,5 @@ @ignore -Copyright (C) 2005-2019 Free Software Foundation, Inc. +Copyright (C) 2005-2020 Free Software Foundation, Inc. This is part of the GNU Fortran manual. For copying conditions, see the file gfortran.texi. diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 299fc9f..622123b 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -1,10 +1,10 @@ -@c Copyright (C) 2004-2019 Free Software Foundation, Inc. +@c Copyright (C) 2004-2020 Free Software Foundation, Inc. @c This is part of the GNU Fortran manual. @c For copying conditions, see the file gfortran.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 2004-2019 Free Software Foundation, Inc. +Copyright @copyright{} 2004-2020 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or |