2021-07-28 Release Manager * GCC 11.2.0 released. 2021-07-15 Harald Anlauf Backported from master: 2021-07-14 Harald Anlauf PR fortran/100949 * trans-expr.c (gfc_trans_class_init_assign): Call gfc_conv_expr_present only for dummy variables. 2021-07-08 Thomas Koenig Backported from master: 2021-07-06 Thomas Koenig PR fortran/100227 * frontend-passes.c (traverse_io_block): Adjust test for when a variable is eligible for the transformation to array slice. 2021-06-19 Harald Anlauf Backported from master: 2021-06-18 Harald Anlauf PR fortran/100283 PR fortran/101123 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally convert result of min/max to result type. 2021-06-18 Harald Anlauf Backported from master: 2021-06-16 Harald Anlauf PR fortran/95501 PR fortran/95502 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference. * match.c (gfc_match_pointer_assignment): Likewise. * parse.c (gfc_check_do_variable): Avoid comparison with NULL symtree. 2021-06-17 Jakub Jelinek Backported from master: 2021-06-09 Jakub Jelinek PR fortran/100965 * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE. 2021-06-16 José Rui Faustino de Sousa PR fortran/82376 * trans-expr.c (gfc_conv_procedure_call): Evaluate function result and then pass a pointer. 2021-06-06 Andre Vehreschild Steve Kargl PR fortran/98301 * trans-decl.c (gfc_build_builtin_function_decls): Move decl. * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for lib-call of caf_random_init instead of logical (4-byte). * trans.h: Add tree var for random_init. 2021-06-04 Harald Anlauf Backported from master: 2021-06-04 Harald Anlauf PR fortran/99839 * frontend-passes.c (inline_matmul_assign): Do not inline matmul if the assignment to the resulting array if it is not of canonical type (real/integer/complex/logical). 2021-05-28 Harald Anlauf Backported from master: 2021-05-17 Harald Anlauf PR fortran/98411 * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE attribute. 2021-05-28 Harald Anlauf Backported from master: 2021-05-27 Harald Anlauf PR fortran/100656 * trans-array.c (gfc_conv_ss_startstride): Do not call check for presence of a dummy argument when a symbol actually refers to a non-dummy. 2021-05-28 Harald Anlauf Backported from master: 2021-05-27 Harald Anlauf PR fortran/100602 * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data attributes for CLASS arrays for generation of runtime error. 2021-05-25 Harald Anlauf Backported from master: 2021-05-23 Harald Anlauf PR fortran/100551 * trans-expr.c (gfc_conv_procedure_call): Adjust check for implicit conversion of actual argument to an unlimited polymorphic procedure argument. 2021-05-25 Tobias Burnus Backported from master: 2021-05-25 Tobias Burnus Johannes Nendwich * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT, RANDOM_NUMBER): Fix typos and copy'n'paste errors. 2021-05-23 Tobias Burnus Backported from master: 2021-05-23 Tobias Burnus * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the proper variable name in the description. 2021-05-18 Tobias Burnus Backported from master: 2021-05-17 Tobias Burnus PR fortran/100633 * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in OMP WORKSHARE. 2021-05-17 Tobias Burnus Backported from master: 2021-05-14 Tobias Burnus * resolve.c (resolve_symbol): Handle implicit SAVE of main-program for vars in 'omp threadprivate' and 'omp declare target'. 2021-05-05 Harald Anlauf Backported from master: 2021-05-05 Harald Anlauf PR fortran/100274 * interface.c (gfc_compare_actual_formal): Continue checks after emitting warning for argument length mismatch. * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer dereference. 2021-04-29 Tobias Burnus Backported from master: 2021-04-28 Tobias Burnus * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before checking whether a '%' or parenthesis-open follows as next character. 2021-04-27 Harald Anlauf Backported from master: 2021-04-24 Harald Anlauf PR fortran/100218 * expr.c (gfc_check_vardef_context): Extend check to allow pointer from a function reference. 2021-04-27 Harald Anlauf Backported from master: 2021-04-24 Harald Anlauf PR fortran/100154 * check.c (variable_check): Allow function reference having a data pointer result. (arg_strlen_is_zero): New function. (gfc_check_fgetputc_sub): Add static check of character and status arguments. (gfc_check_fgetput_sub): Likewise. * intrinsic.c (add_subroutines): Fix argument name for the character argument to intrinsic subroutines fget[c], fput[c]. 2021-04-27 Release Manager * GCC 11.1.0 released. 2021-04-20 Paul Thomas PR fortran/100110 * trans-decl.c (gfc_get_symbol_decl): Replace test for host association with a check that the current and symbol namespaces are the same. 2021-04-19 Thomas Schwinge * lang.opt (fopenacc-kernels=): Remove. 2021-04-16 José Rui Faustino de Sousa PR fortran/100094 * trans-array.c (gfc_trans_deferred_array): Add code to initialize pointers and allocatables with correct TKR parameters. 2021-04-16 José Rui Faustino de Sousa PR fortran/100018 * resolve.c: Add association check before de-referencing pointer. 2021-04-16 Harald Anlauf Paul Thomas PR fortran/63797 * module.c (write_symtree): Do not write interface of intrinsic procedure to module file for F2003 and newer. 2021-04-15 Paul Thomas PR fortran/99307 * symbol.c: Remove trailing white space. * trans-array.c (gfc_trans_create_temp_array): Create a class temporary for class expressions and assign the new descriptor to the data field. (build_class_array_ref): If the class expr can be extracted, then use that for 'decl'. Class function results are reliably handled this way. Call gfc_find_and_cut_at_last_class_ref to eliminate largely redundant code. Remove dead code and recast the rest of the code to extract 'decl' for remaining cases. Call gfc_build_spanned_array_ref. (gfc_alloc_allocatable_for_assignment): Use class descriptor element length for 'elemsize1'. Eliminate repeat set of dtype for class expressions. * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include additional code from build_class_array_ref, and use optional gfc_typespec pointer argument. (gfc_trans_scalar_assign): Make use of pre and post blocks for all class expressions. * trans.c (get_array_span): For unlimited polymorphic exprs multiply the span by the value of the _len field. (gfc_build_spanned_array_ref): New function. (gfc_build_array_ref): Call gfc_build_spanned_array_ref and eliminate repeated code. * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and add prototype for gfc_build_spanned_array_ref. 2021-04-14 Martin Liska * intrinsic.texi: The table has first column empty and it makes trouble when processing makeinfo --xml output. 2021-04-09 Tobias Burnus PR fortran/99817 * trans-types.c (gfc_get_function_type): Also generate hidden coarray argument for character arguments. 2021-04-03 Paul Thomas PR fortran/99818 * interface.c (compare_parameter): The codimension attribute is applied to the _data field of class formal arguments. 2021-04-01 Harald Anlauf PR fortran/99840 * simplify.c (gfc_simplify_transpose): Properly initialize resulting shape. 2021-03-28 Paul Thomas PR fortran/99602 * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs for class expressions and detect proc pointer evaluations by the non-null actual argument list. 2021-03-27 Steve Kargl * misc.c (gfc_typename): Fix off-by-one in buffer sizes. 2021-03-26 Tobias Burnus PR fortran/99651 * intrinsic.c (gfc_intrinsic_func_interface): Set attr.proc = PROC_INTRINSIC if FL_PROCEDURE. 2021-03-24 Tobias Burnus PR fortran/99369 * resolve.c (resolve_operator): Make 'msg' buffer larger and use snprintf. 2021-03-23 Tobias Burnus PR fortran/93660 * trans-decl.c (build_function_decl): Add comment; increment hidden_typelist for caf_token/caf_offset. * trans-types.c (gfc_get_function_type): Add comment; add missing caf_token/caf_offset args. 2021-03-22 Tobias Burnus PR fortran/99688 * match.c (select_type_set_tmp, gfc_match_select_type, gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds. * resolve.c (resolve_select_type): Likewise. 2021-03-19 Thomas Koenig * frontend-passes.c (inline_limit_check): Add rank_a argument. If a is rank 1, set the second dimension to 1. (inline_matmul_assign): Pass rank_a argument to inline_limit_check. (call_external_blas): Likewise. 2021-03-15 Thomas Koenig PR fortran/99345 * frontend-passes.c (doloop_contained_procedure_code): Properly handle EXEC_IOLENGTH. 2021-03-15 Paul Thomas PR fortran/99545 * trans-stmt.c (gfc_trans_allocate): Mark the initialization assignment by setting init_flag. 2021-03-14 Harald Anlauf Paul Thomas * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for CLASS arguments. * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise. 2021-03-13 Paul Thomas PR fortran/99125 * trans-array.c (gfc_conv_expr_descriptor): For deferred length length components use the ss_info string length instead of gfc_get_expr_charlen. Make sure that the deferred string length is a variable before assigning to it. Otherwise use the expr. * trans-expr.c (gfc_conv_string_length): Make sure that the deferred string length is a variable before assigning to it. 2021-03-12 Tobias Burnus PR fortran/99514 * resolve.c (resolve_symbol): Accept vars which are in DATA and hence (either) implicit SAVE (or in common). 2021-03-10 Harald Anlauf PR fortran/99205 * data.c (gfc_assign_data_value): Reject non-constant character length for lvalue. * trans-array.c (gfc_conv_array_initializer): Restrict loop to elements which are defined to avoid NULL pointer dereference. 2021-03-10 Tobias Burnus * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'. 2021-03-10 Eric Botcazou PR fortran/96983 * trans-intrinsic.c (build_round_expr): Do not implicitly assume that __float128 is the 128-bit floating-point type. 2021-03-08 Harald Anlauf PR fortran/49278 * data.c (gfc_assign_data_value): Reject variable with PARAMETER attribute in DATA statement. 2021-03-05 Tobias Burnus PR fortran/99355 PR fortran/57871 * invoke.texi (-freal{4,8}-real-*): Extend description. * primary.c (match_real_constant): Also promote real literals with '_kind' number. 2021-03-04 Tobias Burnus PR fortran/99355 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid redoing kind conversions. * primary.c (match_real_constant): Likewise. 2021-02-28 Jakub Jelinek PR fortran/99303 * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message wordings. (resolve_omp_clauses): Likewise. 2021-02-28 Jakub Jelinek PR fortran/99300 * frontend-passes.c (doloop_code): Replace double space in diagnostics with a single space. 2021-02-24 Paul Thomas PR fortran/98342 * trans-expr.c (gfc_conv_derived_to_class): Add optional arg. 'derived_array' to hold the fixed, parmse expr in the case of assumed rank formal arguments. Deal with optional arguments. (gfc_conv_procedure_call): Null 'derived' array for each actual argument. Add its address to the call to gfc_conv_derived_to_ class. Access the 'data' field of scalar descriptors before deallocating allocatable components. Also strip NOPs before the calls to gfc_deallocate_alloc_comp. Use 'derived' array as the input to gfc_deallocate_alloc_comp if it is available. * trans.h : Include the optional argument 'derived_array' to the prototype of gfc_conv_derived_to_class. The default value is NULL_TREE. 2021-02-23 Paul Thomas PR fortran/99124 * resolve.c (resolve_fl_procedure): Include class results in the test for F2018, C15100. * trans-array.c (get_class_info_from_ss): Do not use the saved descriptor to obtain the class expression for variables. Use gfc_get_class_from_expr instead. 2021-02-23 Harald Anlauf PR fortran/99206 * simplify.c (gfc_simplify_reshape): Set string length for character arguments. 2021-02-22 Tobias Burnus PR fortran/99171 * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional dummy procs as nonoptional as no special treatment is needed. 2021-02-21 Harald Anlauf * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to allocatable intent(out) argument. 2021-02-19 Jerry DeLisle PR fortran/98686 * match.c (gfc_match_namelist): If BT_UNKNOWN, check for IMPLICIT NONE and and issue an error, otherwise set the type to its IMPLICIT type so that any subsequent use of objects will will confirm their types. 2021-02-19 Harald Anlauf * symbol.c (gfc_add_flavor): Reverse order of conditions. 2021-02-19 Tobias Burnus PR fortran/99010 * dependency.c (gfc_dep_resolver): Fix coarray handling. 2021-02-19 Tobias Burnus PR fortran/99146 * interface.c: 2021-02-19 Tobias Burnus PR fortran/99027 * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT when using dim=. 2021-02-17 Julian Brown * openmp.c (resolve_omp_clauses): Disallow selecting components of arrays of derived type. 2021-02-17 Julian Brown * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection for arrays of derived types. 2021-02-16 Tobias Burnus * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e. %im and %re which are EXPR_VARIABLE. * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly. 2021-02-16 Tobias Burnus PR fortran/99111 * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID as (array-valued) FORMAT tag. 2021-02-12 Tobias Burnus PR fortran/99043 * trans-expr.c (gfc_conv_procedure_call): Don't reset rank of assumed-rank array. 2021-02-11 Paul Thomas PR fortran/98897 * match.c (gfc_match_call): Include associate names as possible entities with typebound subroutines. The target needs to be resolved for the type. 2021-02-11 Paul Thomas PR fortran/99060 * primary.c (gfc_match_varspec): Test for non-null 'previous' before using its name in the error message. 2021-02-11 Tobias Burnus * intrinsic.texi (FINDLOC): Add 'MASK' to argument table. (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an array' as scalars are also permitted. 2021-02-10 Julian Brown PR fortran/98979 * openmp.c (resolve_omp_clauses): Omit OpenACC update in contiguity check and stride-specified error. 2021-02-04 Julian Brown * openmp.c (resolve_omp_clauses): Omit OpenACC update in contiguity check and stride-specified error. 2021-02-04 Julian Brown * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute for BT_CLASS. 2021-02-04 Julian Brown * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for BT_DERIVED members. 2021-02-04 Tobias Burnus * openmp.c (resolve_omp_clauses): Explicitly diagnose substrings as not permitted. 2021-02-03 Jeff Law * intrinsic.texi (ANINT): Fix typo. 2021-02-03 Tobias Burnus PR fortran/98913 * dependency.c (gfc_dep_resolver): Treat local access to coarrays like any array access in dependency analysis. 2021-01-28 Harald Anlauf PR fortran/86470 * trans.c (gfc_call_malloc): Allocate area of size 1 if passed size is NULL (as documented). 2021-01-27 Paul Thomas PR fortran/93924 PR fortran/93925 * trans-expr.c (gfc_conv_procedure_call): Suppress the call to gfc_conv_intrinsic_to_class for unlimited polymorphic procedure pointers. (gfc_trans_assignment_1): Similarly suppress class assignment for class valued procedure pointers. 2021-01-27 Paul Thomas PR fortran/98472 * trans-array.c (gfc_conv_expr_descriptor): Include elemental procedure pointers in the assert under the comment 'elemental function' and eliminate the second, spurious assert. 2021-01-25 Harald Anlauf PR fortran/70070 * data.c (create_character_initializer): Check substring indices against bounds. (gfc_assign_data_value): Catch error returned from create_character_initializer. 2021-01-25 Tobias Burnus * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos. 2021-01-25 Steve Kargl PR fortran/98517 * resolve.c (resolve_charlen): Check that length expression is present before testing for scalar/integer.. 2021-01-22 Paul Thomas PR fortran/98565 * trans-intrinsic.c (gfc_conv_associated): Do not add a _data component for scalar class function targets. Instead, fix the function result and access the _data from that. 2021-01-21 Jorge D'Elia * intrinsic.texi (CO_MAX): Fix typo. 2021-01-21 Paul Thomas PR fortran/96320 * decl.c (gfc_match_modproc): It is not an error to find a module procedure declaration within a contains block. * expr.c (gfc_check_vardef_context): Pure procedure result is assignable. Change 'own_scope' accordingly. * resolve.c (resolve_typebound_procedure): A procedure that has the module procedure attribute is almost certainly a module procedure, whatever its interface. 2021-01-19 Tobias Burnus PR fortran/98476 * openmp.c (resolve_omp_clauses): Change use_device_ptr to use_device_addr for unless type(c_ptr); check all list item for is_device_ptr. 2021-01-16 Kwok Cheung Yeung * dump-parse-tree.c (show_omp_clauses): Handle detach clause. * frontend-passes.c (gfc_code_walker): Walk detach expression. * gfortran.h (struct gfc_omp_clauses): Add detach field. (gfc_c_intptr_kind): New. * openmp.c (gfc_free_omp_clauses): Free detach clause. (gfc_match_omp_detach): New. (enum omp_mask1): Add OMP_CLAUSE_DETACH. (enum omp_mask2): Remove OMP_CLAUSE_DETACH. (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP. (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH. (resolve_omp_clauses): Prevent use of detach with mergeable and overriding the data sharing mode of the event handle. * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause. * trans-types.c (gfc_c_intptr_kind): New. (gfc_init_kinds): Initialize gfc_c_intptr_kind. * types.def (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename to... (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): ...this. Add extra argument. 2021-01-14 Harald Anlauf * gfortran.h (gfc_resolve_substring): Add prototype. * primary.c (match_string_constant): Simplify substrings with constant starting and ending points. * resolve.c: Rename resolve_substring to gfc_resolve_substring. (gfc_resolve_ref): Use renamed function gfc_resolve_substring. 2021-01-14 Harald Anlauf PR fortran/98661 * resolve.c (resolve_component): Derived type components with ALLOCATABLE or POINTER attribute shall have a deferred shape. 2021-01-14 Harald Anlauf Revert: 2021-01-14 Harald Anlauf PR fortran/98661 * resolve.c (resolve_component): Derived type components with ALLOCATABLE or POINTER attribute shall have a deferred shape. 2021-01-14 Harald Anlauf PR fortran/98661 * resolve.c (resolve_component): Derived type components with ALLOCATABLE or POINTER attribute shall have a deferred shape. 2021-01-08 Paul Thomas PR fortran/93794 * trans-expr.c (gfc_conv_component_ref): Remove the condition that deferred character length components only be allocatable. 2021-01-08 Paul Thomas PR fortran/98458 * simplify.c (is_constant_array_expr): If an array constructor expression has elements other than constants or structures, try fixing the expression with gfc_reduce_init_expr. Also, if shape is NULL, obtain the array size and set it. 2021-01-07 Paul Thomas PR fortran/93701 * resolve.c (find_array_spec): Put static prototype for resolve_assoc_var before this function and call for associate variables. 2021-01-06 Harald Anlauf * resolve.c (resolve_component): Add check for valid CLASS reference before trying to access CLASS data. 2021-01-04 Martin Liska * ChangeLog-2018: Remove duplicate ChangeLog entries. 2021-01-01 Harald Anlauf * class.c (gfc_find_vtab): Add check on attribute is_class. 2021-01-01 Jakub Jelinek * 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. 2021-01-01 Jakub Jelinek * ChangeLog-2020: Rotate ChangeLog. New file. Copyright (C) 2021 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.