diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-01-03 11:28:42 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2024-01-03 11:29:39 +0100 |
commit | 8c22aed4b09ce6ffa7bd669377355e38f04614d6 (patch) | |
tree | 6e874a9e0a340c9513d966f6e6185b9952cec95a /gcc/fortran | |
parent | 87acfc36194e3101b8ebcc599a78e2481224922d (diff) | |
download | gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.zip gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.tar.gz gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.tar.bz2 |
Rotate ChangeLog files.
Rotate ChangeLog files for ChangeLogs with yearly cadence.
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 2191 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog-2023 | 2195 |
2 files changed, 2196 insertions, 2190 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3b5c9a6..dc0c0df 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,2194 +1,5 @@ -2023-12-28 Rimvydas Jasinskas <rimvydas.jas@gmail.com> - - PR fortran/81615 - * invoke.texi: Add Developer Options section. Move '-fdump-*' - to it. Add small examples about changed '-save-temps' behavior. - -2023-12-20 Rimvydas Jasinskas <rimvydas.jas@gmail.com> - - PR fortran/81615 - * lang-specs.h (F951_CPP_OPTIONS): Do not hardcode ".f90" extension - (F951_CPP_EXTENSION): Use .fi/.fii for fixed/free form sources - * options.cc (form_from_filename): Handle the new extensions - -2023-12-19 Sandra Loosemore <sandra@codesourcery.com> - - * gfortran.h: Include omp-selectors.h. - (enum gfc_omp_trait_property_kind): Delete, and replace all - references with equivalent omp_tp_type enumerators. - (struct gfc_omp_trait_property): Update for omp_tp_type. - (struct gfc_omp_selector): Replace string name with new enumerator. - (struct gfc_omp_set_selector): Likewise. - * openmp.cc (gfc_free_omp_trait_property_list): Update for - omp_tp_type. - (omp_construct_selectors): Delete. - (omp_device_selectors): Delete. - (omp_implementation_selectors): Delete. - (omp_user_selectors): Delete. - (gfc_ignore_trait_property_extension): New. - (gfc_ignore_trait_property_extension_list): New. - (gfc_match_omp_selector): Adjust for new representations and simplify - dispatch logic. Uniformly warn instead of sometimes error when an - unknown selector is found. - (gfc_match_omp_context_selector): Adjust for new representations. - Adjust error messages for extraneous/incorrect score. - (gfc_match_omp_context_selector_specification): Likewise. - * trans-openmp.cc (gfc_trans_omp_declare_variant): Adjust for - new representations. - -2023-12-19 Sandra Loosemore <sandra@codesourcery.com> - - * trans-openmp.cc (gfc_trans_omp_declare_varaint): Adjust for - new namelist property representation. - -2023-12-19 Sandra Loosemore <sandra@codesourcery.com> - - * trans-openmp.cc (gfc_trans_omp_declare_variant): Use new - constructors. - -2023-12-18 Harald Anlauf <anlauf@gmx.de> - - PR fortran/96580 - * check.cc (array_size_check): New helper function. - (gfc_check_date_and_time): Use it for checking minimum size of - VALUES argument. Update kind check to Fortran 2018. - * intrinsic.texi: Fix documentation of DATE_AND_TIME. - -2023-12-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/97592 - * trans-expr.cc (gfc_conv_procedure_call): For a contiguous dummy - with the TARGET attribute, the effective argument may still be - contiguous even if the actual argument is not simply-contiguous. - Allow packing to be decided at runtime by _gfortran_internal_pack. - -2023-12-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/112459 - * trans-array.cc (gfc_trans_array_constructor_value): Replace - gfc_notification_std with explicit logical expression that - selects F2003/2008 and excludes -std=default/gnu. - * trans-expr.cc (gfc_conv_expr): Ditto. - -2023-12-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/112834 - PR fortran/111853 - * match.cc (build_associate_name): Fix whitespace issues. - (select_type_set_tmp): If the selector is of unknown type, go - the SELECT TYPE selector to see if this is a function and, if - the result is available, use its typespec. - * parse.cc (parse_associate): Again, use the function result if - the type of the selector result is unknown. - * trans-stmt.cc (trans_associate_var): The expression has to be - of type class, for class_target to be true. Convert and fix - class functions. Pass the fixed expression. - * resolve.cc (gfc_expression_rank): Avoid null dereference. - -2023-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/112783 - * intrinsic.texi: Fix where no COMPLEX allowed. - * invoke.texi: Clarify -fdev-math. - -2023-12-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/112873 - * gfortran.texi: Update to reflect the changes. - * intrinsic.cc (add_functions): Update the standard that the - various degree trigonometric functions have been described in. - (gfc_check_intrinsic_standard): Add an error string for F2023. - * intrinsic.texi: Update accordingly. - -2023-12-13 Julian Brown <julian@codesourcery.com> - - * dependency.cc (gfc_omp_expr_prefix_same): New function. - * dependency.h (gfc_omp_expr_prefix_same): Add prototype. - * gfortran.h (gfc_omp_namelist): Add "duplicate_of" field to "u2" - union. - * trans-openmp.cc (dependency.h): Include. - (gfc_trans_omp_array_section): Adjust mapping node arrangement for - array descriptors. Use GOMP_MAP_TO_PSET or - GOMP_MAP_RELEASE/GOMP_MAP_DELETE with the OMP_CLAUSE_RELEASE_DESCRIPTOR - flag set. - (gfc_symbol_rooted_namelist): New function. - (gfc_trans_omp_clauses): Check subcomponent and subarray/element - accesses elsewhere in the clause list for pointers to derived types or - array descriptors, and adjust or drop mapping nodes appropriately. - Adjust for changes to mapping node arrangement. - (gfc_trans_oacc_executable_directive): Pass code op through. - -2023-12-13 Julian Brown <julian@codesourcery.com> - - * trans-openmp.cc (gfc_trans_omp_array_section): Add OPENMP parameter. - Use GOMP_MAP_ATTACH_DETACH instead of GOMP_MAP_ALWAYS_POINTER for - derived type components. - (gfc_trans_omp_clauses): Update calls to gfc_trans_omp_array_section. - -2023-12-11 Thomas Schwinge <thomas@codesourcery.com> - - * trans-openmp.cc (gfc_omp_call_is_alloc): Resolve ICE. - -2023-12-11 Tobias Burnus <tobias@codesourcery.com> - - * gfortran.h (enum gfc_omp_requires_kind): Add - OMP_REQ_ATOMIC_MEM_ORDER_ACQUIRE and OMP_REQ_ATOMIC_MEM_ORDER_RELEASE. - (gfc_namespace): Add a 7th bit to omp_requires. - * module.cc (enum ab_attribute): Add AB_OMP_REQ_MEM_ORDER_ACQUIRE - and AB_OMP_REQ_MEM_ORDER_RELEASE - (mio_symbol_attribute): Handle it. - * openmp.cc (gfc_omp_requires_add_clause): Update for acquire/release. - (gfc_match_omp_requires): Likewise. - (gfc_match_omp_atomic): Handle them for atomic_default_mem_order. - * parse.cc: Likewise. - -2023-12-11 Tobias Burnus <tobias@codesourcery.com> - - * trans-openmp.cc (gfc_omp_call_add_alloc, - gfc_omp_call_is_alloc): Set 'fn spec'. - -2023-12-10 Harald Anlauf <anlauf@gmx.de> - - PR fortran/111503 - * expr.cc (gfc_is_simply_contiguous): Determine characteristics of - NULL() from optional MOLD argument, otherwise treat as contiguous. - * primary.cc (gfc_variable_attr): Derive attributes of NULL(MOLD) - from MOLD. - -2023-12-10 Harald Anlauf <anlauf@gmx.de> - - PR fortran/105543 - * resolve.cc (resolve_symbol): For a CLASS-valued function having a - RESULT clause, ensure that attr.class_ok is set for its symbol as - well as for its resolved result variable. - -2023-12-08 Tobias Burnus <tobias@codesourcery.com> - - * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_ALLOCATE - and EXEC_OMP_ALLOCATORS. - * f95-lang.cc (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): - Add 'ECF_LEAF | ECF_MALLOC' to existing 'ECF_NOTHROW'. - (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): Define. - * gfortran.h (gfc_omp_clauses): Add contained_in_target_construct. - * invoke.texi (-fopenacc, -fopenmp): Update based on C version. - (-fopenmp-simd): New, based on C version. - (-fopenmp-allocators): New. - * lang.opt (fopenmp-allocators): Add. - * openmp.cc (resolve_omp_clauses): For allocators/allocate directive, - add target and no dynamic_allocators diagnostic and more invalid - diagnostic. - * parse.cc (decode_omp_directive): Set contains_teams_construct. - * trans-array.h (gfc_array_allocate): Update prototype. - (gfc_conv_descriptor_version): New prototype. - * trans-decl.cc (gfc_init_default_dt): Fix comment. - * trans-array.cc (gfc_conv_descriptor_version): New. - (gfc_array_allocate): Support GOMP_alloc allocation. - (gfc_alloc_allocatable_for_assignment, structure_alloc_comps): - Handle GOMP_free/omp_realloc as needed. - * trans-expr.cc (gfc_conv_procedure_call): Likewise. - (alloc_scalar_allocatable_for_assignment): Likewise. - * trans-intrinsic.cc (conv_intrinsic_move_alloc): Likewise. - * trans-openmp.cc (gfc_trans_omp_allocators, - gfc_trans_omp_directive): Handle allocators/allocate directive. - (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New. - * trans-stmt.h (gfc_trans_allocate): Update prototype. - * trans-stmt.cc (gfc_trans_allocate): Support GOMP_alloc. - * trans-types.cc (gfc_get_dtype_rank_type): Set version field. - * trans.cc (gfc_allocate_using_malloc, gfc_allocate_allocatable): - Update to handle GOMP_alloc. - (gfc_deallocate_with_status, gfc_deallocate_scalar_with_status): - Handle GOMP_free. - (trans_code): Update call. - * trans.h (gfc_allocate_allocatable, gfc_allocate_using_malloc): - Update prototype. - (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New prototype. - * types.def (BT_FN_PTR_PTR_SIZE_PTRMODE_PTRMODE): New. - -2023-12-06 David Malcolm <dmalcolm@redhat.com> - - * error.cc (gfc_diagnostic_starter): Make diagnostic_info param - const. - (gfc_diagnostic_finalizer): Likewise. - -2023-12-05 Harald Anlauf <anlauf@gmx.de> - Tobias Burnus <tobias@codesourcery.com> - - PR fortran/100988 - * gfortran.h (IS_PROC_POINTER): New macro. - * trans-types.cc (gfc_sym_type): Use macro in determination if the - restrict qualifier can be used for a dummy variable. Fix logic to - allow the restrict qualifier also for optional arguments, and to - not apply it to pointer or proc_pointer arguments. - -2023-12-05 Richard Sandiford <richard.sandiford@arm.com> - - * f95-lang.cc (gfc_gnu_attribute_table): Add extra braces to work - around PR 16333 in older compilers. - -2023-12-02 Harald Anlauf <anlauf@gmx.de> - - PR fortran/93762 - PR fortran/100651 - * trans-array.cc (gfc_trans_deferred_array): Add presence check - for optional deferred-length character dummy arguments. - * trans-expr.cc (gfc_conv_missing_dummy): The character length for - deferred-length dummy arguments is passed by reference, so that - its value can be returned. Adjust handling for optional dummies. - -2023-12-02 Richard Sandiford <richard.sandiford@arm.com> - - * f95-lang.cc: Include attribs.h. - (gfc_attribute_table): Change to an array of scoped_attribute_specs - pointers, using... - (gfc_gnu_attributes, gfc_gnu_attribute_table): ...these new globals. - -2023-12-01 Harald Anlauf <anlauf@gmx.de> - - PR fortran/112772 - * trans-expr.cc (gfc_conv_class_to_class): Make copy-out conditional - on the presence of an OPTIONAL CLASS argument passed to an OPTIONAL - CLASS dummy. - -2023-11-30 Harald Anlauf <anlauf@gmx.de> - - PR fortran/112764 - * primary.cc (gfc_variable_attr): Set TARGET attribute of associating - entity dependent on TARGET or POINTER attribute of selector. - -2023-11-28 Andrew Jenner <andrew@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - - PR fortran/110415 - * trans-expr.cc (trans_class_vptr_len_assignment): Add - from_vptrp parameter. Populate it. Don't check for DECL_P - when deciding whether to create temporary. - (trans_class_pointer_fcn, gfc_trans_pointer_assignment): Add - NULL argument to trans_class_vptr_len_assignment calls. - (trans_class_assignment): Get rhs_vptr from - trans_class_vptr_len_assignment and use it for determining size - for allocation/reallocation. Use return value from realloc. - -2023-11-26 Harald Anlauf <anlauf@gmx.de> - - PR fortran/111880 - * resolve.cc (resolve_common_vars): Do not call gfc_add_in_common - for symbols that are USE associated or used in a submodule. - -2023-11-24 Tobias Burnus <tobias@codesourcery.com> - - * lang.opt (Wopenmp): Add, enabled by dafault and documented in C. - * openmp.cc (gfc_match_omp_declare_target, resolve_positive_int_expr, - resolve_nonnegative_int_expr, resolve_omp_clauses, - gfc_resolve_omp_do_blocks): Use OPT_Wopenmp with gfc_warning{,_now}. - -2023-11-24 Tobias Burnus <tobias@codesourcery.com> - - * openmp.cc (gfc_match_omp_depobj): Accept optionally an argument - to the destroy clause. - -2023-11-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/112609 - * check.cc (gfc_check_system_clock): Add checks on integer arguments - to SYSTEM_CLOCK specific to F2023. - * error.cc (notify_std_msg): Adjust to handle new features added - in F2023. - * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023_DEL, - remove obsolete option GFC_STD_F2008_TS and fix enumeration values. - * libgfortran.h (GFC_STD_F2023_DEL): Add and use in GFC_STD_OPT_F23. - * options.cc (set_default_std_flags): Add GFC_STD_F2023_DEL. - -2023-11-17 Tobias Burnus <tobias@codesourcery.com> - - * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023. - * invoke.texi (std,pedantic,Wampersand,Wtabs): Add -std=2023. - * lang.opt (std=f2023): Add. - * libgfortran.h (GFC_STD_F2023, GFC_STD_OPT_F23): Add. - * options.cc (set_default_std_flags): Add GFC_STD_F2023. - (gfc_init_options): Set max_continue_free to 1,000,000. - (gfc_post_options): Set flag_free_line_length if unset. - (gfc_handle_option): Add OPT_std_f2023, set max_continue_free = 255 - for -std=f2003, f2008 and f2018. - -2023-11-14 David Malcolm <dmalcolm@redhat.com> - - * error.cc (gfc_diagnostics_init): Use diagnostic_start_span. - -2023-11-07 Joseph Myers <joseph@codesourcery.com> - - * gfortran.h (gfc_real_info): Refer to C23 instead of C2X in - comment. - -2023-11-06 Martin Jambor <mjambor@suse.cz> - - * trans-decl.cc (gfc_build_builtin_function_decls): Fix fnspec of - generate_error. - -2023-11-04 David Malcolm <dmalcolm@redhat.com> - - * cpp.cc: Update for changes to diagnostic_context. - * error.cc: Likewise. - * options.cc: Likewise. - -2023-11-03 Harald Anlauf <anlauf@gmx.de> - - PR fortran/97245 - * match.cc (gfc_match_call): If a procedure pointer has already been - resolved, do not create a new symbol in a procedure reference of - the same name shadowing the first one if it is host-associated. - -2023-11-03 Harald Anlauf <anlauf@gmx.de> - - PR fortran/92887 - * trans-expr.cc (conv_cond_temp): Helper function for creation of a - conditional temporary. - (gfc_conv_procedure_call): Handle passing of allocatable or pointer - actual argument to dummy with OPTIONAL + VALUE attribute. Actual - arguments that are not allocated or associated are treated as not - present. - -2023-11-03 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/98498 - * interface.cc (upoly_ok): Defined operators using unlimited - polymorphic formal arguments must not override the intrinsic - operator use. - -2023-11-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/112316 - * parse.cc (parse_associate): Remove condition that caused this - regression. - -2023-10-30 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/104555 - * resolve.cc (resolve_select_type): If the selector expression - has no class component references and the expression is a - derived type, copy the typespec of the symbol to that of the - expression. - -2023-10-27 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/104649 - * decl.cc (gfc_match_formal_arglist): Handle conflicting declarations - of a MODULE PROCEDURE when one of the declarations is an alternate - return. - -2023-10-27 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/104625 - * expr.cc (gfc_check_vardef_context): Check that the target - does have a vector index before emitting the specific error. - * match.cc (copy_ts_from_selector_to_associate): Ensure that - class valued operator expressions set the selector rank and - use the rank to provide the associate variable with an - appropriate array spec. - * resolve.cc (resolve_operator): Reduce stacked parentheses to - a single pair. - (fixup_array_ref): Extract selector symbol from parentheses. - -2023-10-26 Paul-Antoine Arras <pa@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - - * interface.cc (gfc_compare_types): Return true if one type is C_PTR - and the other is a compatible INTEGER(8). - * misc.cc (gfc_typename): Handle the case where an INTEGER(8) actually - holds a TYPE(C_PTR). - -2023-10-25 Thomas Schwinge <thomas@codesourcery.com> - - * openmp.cc (omp_mask2): Split 'OMP_CLAUSE_HOST_SELF' into - 'OMP_CLAUSE_SELF', 'OMP_CLAUSE_HOST'. - (gfc_match_omp_clauses, OACC_UPDATE_CLAUSES): Adjust. - -2023-10-25 Chung-Lin Tang <cltang@codesourcery.com> - - * gfortran.h (typedef struct gfc_omp_clauses): Add self_expr field. - * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_SELF. - (gfc_match_omp_clauses): Add handling for OMP_CLAUSE_SELF. - (OACC_PARALLEL_CLAUSES): Add OMP_CLAUSE_SELF. - (OACC_KERNELS_CLAUSES): Likewise. - (OACC_SERIAL_CLAUSES): Likewise. - (resolve_omp_clauses): Add handling for omp_clauses->self_expr. - * trans-openmp.cc (gfc_trans_omp_clauses): Add handling of - clauses->self_expr and building of OMP_CLAUSE_SELF tree clause. - (gfc_split_omp_clauses): Add handling of self_expr field copy. - -2023-10-25 Thomas Schwinge <thomas@codesourcery.com> - - * dump-parse-tree.cc (show_omp_clauses): Group handling of 'if' - clause without and with modifier. - * frontend-passes.cc (gfc_code_walker): Likewise. - * gfortran.h (gfc_omp_clauses): Likewise. - * openmp.cc (gfc_free_omp_clauses): Likewise. - -2023-10-18 Tobias Burnus <tobias@codesourcery.com> - - * intrinsic.texi (signal): Add 'intrinsic :: signal, sleep' to - the example to make it safer. - -2023-10-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/111837 - * frontend-passes.cc (traverse_io_block): Dependency check of loop - nest shall be triangular, not banded. - -2023-10-17 Tobias Burnus <tobias@codesourcery.com> - - * intrinsic.texi (signal): Mention that the argument - passed to the signal handler procedure is passed by reference. - Extend example. - -2023-10-15 Tobias Burnus <tobias@codesourcery.com> - - * scanner.cc (skip_free_comments, skip_fixed_comments): Remove - leftover 'OpenACC' from comments about OpenMP's conditional - compilation sentinel. - -2023-10-14 Tobias Burnus <tobias@codesourcery.com> - - * gfortran.h (ext_attr_t): Add omp_allocate flag. - * match.cc (gfc_free_omp_namelist): Void deleting same - u2.allocator multiple times now that a sequence can use - the same one. - * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_allocate): Use - same allocator expr multiple times. - (is_predefined_allocator): Make static. - (gfc_resolve_omp_allocate): Update/extend restriction checks; - remove sorry message. - (resolve_omp_clauses): Reject corarrays in allocate/allocators - directive. - * parse.cc (check_omp_allocate_stmt): Permit procedure pointers - here (rejected later) for less misleading diagnostic. - * trans-array.cc (gfc_trans_auto_array_allocation): Propagate - size for GOMP_alloc and location to which it should be added to. - * trans-decl.cc (gfc_trans_deferred_vars): Handle 'omp allocate' - for stack variables; sorry for static variables/common blocks. - * trans-openmp.cc (gfc_trans_omp_clauses): Evaluate 'allocate' - clause's allocator only once; fix adding expressions to the - block. - (gfc_trans_omp_single): Pass a block to gfc_trans_omp_clauses. - -2023-10-13 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104351 - * decl.cc (get_proc_name): Extend name conflict detection between - internal procedure and previous declaration also to derived type. - -2023-10-13 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110957 - * invoke.texi: Update documentation to reflect '-ffpe-trap=none'. - * options.cc (gfc_handle_fpe_option): Fix mixup up of error messages - for options -ffpe-trap and -ffpe-summary. Accept '-ffpe-trap=none' - to clear FPU traps previously set on command line. - -2023-10-13 Richard Biener <rguenther@suse.de> - - PR tree-optimization/111779 - * trans-expr.cc (gfc_trans_assignment_1): Initialize - lhs_caf_attr and rhs_caf_attr codimension flag to avoid - false positive -Wuninitialized. - -2023-10-12 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/67740 - * trans-expr.cc (gfc_trans_pointer_assignment): Set the hidden - string length component for pointer assignment to character - pointer components. - -2023-10-08 Tobias Burnus <tobias@codesourcery.com> - - * parse.cc (parse_omp_structured_block): Make the user code end - up inside of BLOCK construct for strictly structured blocks; - fix fallout for 'section' and 'teams'. - * openmp.cc (resolve_omp_target): Fix changed BLOCK handling - for teams in target checking. - -2023-10-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/37336 - PR fortran/111674 - * trans-expr.cc (gfc_trans_scalar_assign): Finalize components - on deallocation if derived type is not finalizable. - -2023-10-03 David Malcolm <dmalcolm@redhat.com> - - * error.cc (gfc_format_decoder): Update for "m_" prefixes to - text_info fields. - -2023-10-02 David Malcolm <dmalcolm@redhat.com> - - * error.cc (gfc_diagnostics_init): Update for change to start_span. - -2023-10-02 David Malcolm <dmalcolm@redhat.com> - - * error.cc (gfc_diagnostic_starter): Update for reorganization of - source-printing fields of diagnostic_context. - (gfc_diagnostics_init): Likewise. - (gfc_diagnostics_finish): Likewise. - -2023-09-29 Andre Vehreschild <vehre@gcc.gnu.org> - - PR fortran/37336 - * trans-array.cc (structure_alloc_comps): Deref coarray. - (gfc_trans_deferred_array): Add freeing of components after - check for allocated coarray. - -2023-09-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/68155 - PR fortran/111271 - * decl.cc (fix_initializer_charlen): New function broken out of - add_init_expr_to_sym. - (add_init_expr_to_sym, build_struct): Call the new function. - * trans-expr.cc (gfc_conv_intrinsic_to_class): Remove repeated - condition. - -2023-09-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/95710 - * class.cc (gfc_build_class_symbol): Do not try to build class - container for invalid typespec. - * resolve.cc (resolve_fl_var_and_proc): Prevent NULL pointer - dereference. - (resolve_symbol): Likewise. - -2023-09-19 Harald Anlauf <anlauf@gmx.de> - - PR fortran/70231 - * trans-array.cc (trans_array_constructor): In absence of a typespec, - use string length determined by get_array_ctor_strlen() to reasonably - initialize auxiliary variable for bounds-checking. - -2023-09-15 Harald Anlauf <anlauf@gmx.de> - - PR fortran/30802 - * trans-array.cc (trans_array_bound_check): Add optional argument - COMPNAME for explicit specification of array component name. - (array_bound_check_elemental): Helper function for generating - bounds-checking code for elemental dimensions. - (gfc_conv_expr_descriptor): Use bounds-checking also for elemental - dimensions, i.e. those not handled by the scalarizer. - -2023-09-15 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/108957 - * gfortran.h (gfc_symbol): Add comment documenting reference counting. - * parse.cc (parse_interface): Remove reference count incrementation. - -2023-09-12 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/110996 - * gfortran.h (gfc_release_symbol): Set return type to bool. - * symbol.cc (gfc_release_symbol): Ditto. Return whether symbol was - freed. - (delete_symbol_from_ns): New, outline code from... - (gfc_restore_last_undo_checkpoint): ... here. Delete new symbols - from two more namespaces. - -2023-09-09 Mikael Morin <mikael@gcc.gnu.org> - - * bbt.cc (delete_treap): Add argument REMOVED, set it to the removed - element from the tree. Change NULL to nullptr. - (gfc_delete_bbt): Return the removed element from the tree. - * gfortran.h (gfc_delete_symtree): Remove prototype. - (gfc_delete_bbt): Set return type to pointer. - * symbol.cc (gfc_delete_symtree): Make static. Get the element to be - freed from the result of gfc_delete_bbt. Remove the preliminary walk to - get it. - -2023-09-01 Harald Anlauf <anlauf@gmx.de> - - PR fortran/31059 - * trans-array.cc (gfc_conv_ss_startstride): For array bounds checking, - consider also array constructors in expressions, and use their shape. - -2023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> - - * gfortran.texi: Likewise. - -2023-08-30 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/48776 - * gfortran.h (gfc_drop_interface_elements_before): New prototype. - (gfc_current_interface_head): Return a reference to the pointer. - * interface.cc (gfc_current_interface_head): Ditto. - (free_interface_elements_until): New function, generalizing - gfc_free_interface. - (gfc_free_interface): Use free_interface_elements_until. - (gfc_drop_interface_elements_before): New function. - * parse.cc - (current_interface_ptr, previous_interface_head): New static variables. - (current_interface_valid_p, get_current_interface_ptr): New functions. - (decode_statement): Initialize previous_interface_head. - (reject_statement): Restore current interface pointer to point to - previous_interface_head. - -2023-08-26 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/92586 - * trans-expr.cc (gfc_trans_arrayfunc_assign): Supply a missing - dereference for the call to gfc_deallocate_alloc_comp_no_caf. - -2023-08-25 Sandra Loosemore <sandra@codesourcery.com> - - * gfortran.h (struct gfc_namespace): Add omp_structured_block bit. - * openmp.cc: Include omp-api.h. - (resolve_omp_clauses): Consolidate inscan reduction clause conflict - checking here. - (find_nested_loop_in_chain): New. - (find_nested_loop_in_block): New. - (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse properly. - Handle imperfectly-nested loops when looking for nested omp scan. - Refactor to move inscan reduction clause conflict checking to - resolve_omp_clauses. - (gfc_resolve_do_iterator): Handle imperfectly-nested loops. - (struct icode_error_state): New. - (icode_code_error_callback): New. - (icode_expr_error_callback): New. - (diagnose_intervening_code_errors_1): New. - (diagnose_intervening_code_errors): New. - (make_structured_block): New. - (restructure_intervening_code): New. - (is_outer_iteration_variable): Do not assume loops are perfectly - nested. - (check_nested_loop_in_chain): New. - (check_nested_loop_in_block_state): New. - (check_nested_loop_in_block_symbol): New. - (check_nested_loop_in_block): New. - (expr_uses_intervening_var): New. - (is_intervening_var): New. - (expr_is_invariant): Do not assume loops are perfectly nested. - (resolve_omp_do): Handle imperfectly-nested loops. - * trans-stmt.cc (gfc_trans_block_construct): Generate - OMP_STRUCTURED_BLOCK if magic bit is set on block namespace. - -2023-08-25 Harald Anlauf <anlauf@gmx.de> - - PR fortran/35095 - * data.cc (get_array_index): Add bounds-checking code and return error - status. Overindexing will be allowed as an extension for -std=legacy - and generate an error in standard-conforming mode. - (gfc_assign_data_value): Use error status from get_array_index for - graceful error recovery. - -2023-08-25 Uros Bizjak <ubizjak@gmail.com> - - * match.cc (gfc_match_equivalence): Rename TRUE/FALSE to true/false. - * module.cc (check_access): Ditto. - * primary.cc (match_real_constant): Ditto. - * trans-array.cc (gfc_trans_allocate_array_storage): Ditto. - (get_array_ctor_strlen): Ditto. - * trans-common.cc (find_equivalence): Ditto. - (add_equivalences): Ditto. - -2023-08-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/32986 - * resolve.cc (is_non_constant_shape_array): Add forward declaration. - (resolve_common_vars): Diagnose automatic array object in COMMON. - (resolve_symbol): Prevent confusing follow-on error. - -2023-08-22 Tobias Burnus <tobias@codesourcery.com> - - * gfortran.h (enum gfc_omp_defaultmap_category): - Add OMP_DEFAULTMAP_CAT_ALL. - * openmp.cc (gfc_match_omp_clauses): Parse - 'all' as category. - * trans-openmp.cc (gfc_trans_omp_clauses): Handle it. - -2023-08-22 Harald Anlauf <anlauf@gmx.de> - - PR fortran/49588 - * data.cc (gfc_advance_section): Derive next index set and next offset - into DATA variable also for array references using vector sections. - Use auxiliary array to keep track of offsets into indexing vectors. - (gfc_get_section_index): Set up initial indices also for DATA variables - with array references using vector sections. - * data.h (gfc_get_section_index): Adjust prototype. - (gfc_advance_section): Likewise. - * resolve.cc (check_data_variable): Pass vector offsets. - -2023-08-16 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110360 - * trans-expr.cc (conv_scalar_char_value): Use gfc_replace_expr to - avoid leaking replaced gfc_expr. - -2023-08-15 Martin Jambor <mjambor@suse.cz> - Harald Anlauf <anlauf@gmx.de> - - PR fortran/110677 - * resolve.cc (resolve_structure_cons): Check comp->ts is character - type before accessing stuff through comp->ts.u.cl. - -2023-08-15 Chung-Lin Tang <cltang@codesourcery.com> - Thomas Schwinge <thomas@codesourcery.com> - - * openmp.cc (OACC_DATA_CLAUSES): Add OMP_CLAUSE_DEFAULT. - -2023-08-14 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/110360 - PR fortran/110419 - * trans-types.cc (gfc_sym_type): Use a bare character type for length - one value character dummy arguments. - * trans-expr.cc (gfc_conv_string_parameter): Handle single character - case. - (gfc_conv_procedure_call): Don't exclude interoperable kinds - from single character handling. For single character dummy arguments, - extend the existing handling of non-constant expressions to constant - expressions. - -2023-08-14 Mikael Morin <mikael@gcc.gnu.org> - - * gfortran.h (gfc_length_one_character_type_p): New inline - function. - * check.cc (is_c_interoperable): Use - gfc_length_one_character_type_p. - * decl.cc (verify_bind_c_sym): Same. - * trans-expr.cc (gfc_conv_procedure_call): Same. - -2023-08-09 Steve Kargl <sgk@troutmask.apl.washington.edu> - - PR fortran/109684 - * resolve.cc (resolve_types): Exclude contained procedures with - the artificial attribute from test for pureness. - -2023-07-31 Chung-Lin Tang <cltang@codesourcery.com> - - * openmp.cc (resolve_omp_clauses): Add checking requiring - OpenACC host_data construct to have an use_device clause. - -2023-07-28 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110825 - * gfortran.texi: Clarify argument passing convention. - * trans-expr.cc (gfc_conv_procedure_call): Do not pass the character - length as hidden argument when the declared dummy argument is - assumed-type. - -2023-07-27 Tobias Burnus <tobias@codesourcery.com> - - * openmp.cc (resolve_omp_target): Minor cleanup. - * parse.cc (decode_omp_directive): Find TARGET statement - also higher in the stack. - -2023-07-26 Harald Anlauf <anlauf@gmx.de> - - PR fortran/68569 - * resolve.cc (check_data_variable): Do not accept strings with - deferred length or non-constant length in a DATA statement. - Reject also substrings of string variables of non-constant length. - -2023-07-25 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/110725 - PR middle-end/71065 - * gfortran.h (gfc_omp_clauses): Add target_first_st_is_teams. - * parse.cc (parse_omp_structured_block): Set it if the first - statement in the structured block of a TARGET is TEAMS or - a combined/composite starting with TEAMS. - * openmp.cc (resolve_omp_target): Also show an error for - contains_teams_construct without target_first_st_is_teams. - -2023-07-24 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/110725 - PR middle-end/71065 - * gfortran.h (gfc_omp_clauses): Add contains_teams_construct. - * openmp.cc (resolve_omp_target): New; check for teams nesting. - (gfc_resolve_omp_directive): Call it. - * parse.cc (decode_omp_directive): Set contains_teams_construct - on enclosing ST_OMP_TARGET. - -2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> - - * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): Only - define it once. - -2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> - - * f95-lang.cc (gfc_init_builtin_functions): Add __builtin_iseqsig. - * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): New - function. - (gfc_conv_ieee_arithmetic_function): Handle IEEE comparisons. - -2023-07-19 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/107424 - * trans-openmp.cc (gfc_nonrect_loop_expr): Accept all - constant loop steps. - (gfc_trans_omp_do): Likewise; use sign to determine - loop direction. - -2023-07-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/95947 - PR fortran/110658 - * trans-expr.cc (gfc_conv_procedure_call): For intrinsic procedures - whose result characteristics depends on the first argument and which - can be of type character, the character length will not be deferred. - -2023-07-17 Tobias Burnus <tobias@codesoucery.com> - Chung-Lin Tang <cltang@codesourcery.com> - - * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Dump - uses_allocators clause. - * gfortran.h (gfc_free_omp_namelist): Add memspace_sym to u union - and traits_sym to u2 union. - (OMP_LIST_USES_ALLOCATORS): New enum value. - (gfc_free_omp_namelist): Add 'bool free_mem_traits_space' arg. - * match.cc (gfc_free_omp_namelist): Likewise. - * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_variable_list, - gfc_match_omp_to_link, gfc_match_omp_doacross_sink, - gfc_match_omp_clause_reduction, gfc_match_omp_allocate, - gfc_match_omp_flush): Update call. - (gfc_match_omp_clauses): Likewise. Parse uses_allocators clause. - (gfc_match_omp_clause_uses_allocators): New. - (enum omp_mask2): Add new OMP_CLAUSE_USES_ALLOCATORS. - (OMP_TARGET_CLAUSES): Accept it. - (resolve_omp_clauses): Resolve uses_allocators clause - * st.cc (gfc_free_statement): Update gfc_free_omp_namelist call. - * trans-openmp.cc (gfc_trans_omp_clauses): Handle - OMP_LIST_USES_ALLOCATORS; fail with sorry unless predefined allocator. - (gfc_split_omp_clauses): Handle uses_allocators. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/110618 - * trans.h (gfc_deallocate_with_status): Add class container - argument. - (gfc_deallocate_scalar_with_status): Ditto. - * trans.cc (gfc_deallocate_with_status): Add class container - argument and pass it down to gfc_add_finalize_call. - (gfc_deallocate_scalar_with_status): Same. - * trans-array.cc (structure_alloc_comps): Update caller. - * trans-stmt.cc (gfc_trans_deallocate): Ditto. - * trans-expr.cc (gfc_conv_procedure_call): Ditto. Pass - pre-evaluated class container argument if it's available. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/110618 - * trans.h (gfc_add_finalizer_call): Add class container argument. - * trans.cc (gfc_add_finalizer_call): Ditto. Pass down new - argument to get_final_proc_ref, get_elem_size, get_var_desc, - and get_vptr. - (get_elem_size): Add class container argument. - Use provided class container if it's available. - (get_var_descr): Same. - (get_vptr): Same. - (get_final_proc_ref): Same. Add boolean telling the class - container argument is used. Set it. Don't try to use - final_wrapper if class container argument was used. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_var_descr): Factor scalar descriptor generation. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_vptr): New function. - (gfc_add_finalizer_call): Move virtual table pointer evaluation - to get_vptr. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_var_descr): Remove argument ts. Use var->ts - instead. - (gfc_add_finalizer_call): Update caller. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_add_finalizer_call): Inline definition of - variable has_finalizer. Merge nested conditions. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_add_finalizer_call): Remove local variable - final_expr. Pass down expr to get_final_proc_ref and move - final procedure expression generation down to its one usage - in get_final_proc_ref. - (get_final_proc_ref): Add argument expr. Remove argument - final_wrapper. Recreate final_wrapper from expr. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_add_finalizer_call): Remove local variable - elem_size. Pass expression to get_elem_size and move the - element size expression generation close to its usage there. - (get_elem_size): Add argument expr, remove class_size argument - and rebuild it from expr. Remove ts argument and use the - type of expr instead. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_add_finalizer_call): Move pre and post code for - the final procedure pointer expression to the outer block. - Reuse the previously evaluated final procedure pointer - expression. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_add_finalizer_call): Add post code for desc_se - after the finalizer call. Add post code for final_se and - size_se as well. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_build_final_call): Inline... - (gfc_add_finalizer_call): ... to its one caller. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_var_descr): New function. - (gfc_build_final_call): Outline the data reference descriptor - evaluation code to get_var_descr. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_elem_size): New function. - (gfc_build_final_call): Outline the element size evaluation - to get_elem_size. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (get_final_proc_ref): New function. - (gfc_build_final_call): Outline the pointer evaluation code - to get_final_proc_ref. - -2023-07-17 Mikael Morin <mikael@gcc.gnu.org> - - * trans.cc (gfc_build_final_call): Remove commented assertion. - -2023-07-14 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/92178 - * trans.h (gfc_reset_vptr): Add class_container argument. - * trans-expr.cc (gfc_reset_vptr): Ditto. If a valid vptr can - be obtained through class_container argument, bypass evaluation - of e. - (gfc_conv_procedure_call): Wrap the argument evaluation code - in a conditional if the associated dummy is optional. Evaluate - the data reference to a pointer now, and replace later - references with usage of the pointer. - -2023-07-14 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/92178 - * trans.h (struct gfc_se): New field class_container. - (struct gfc_ss_info): Ditto. - (gfc_evaluate_data_ref_now): New prototype. - * trans.cc (gfc_evaluate_data_ref_now): Implement it. - * trans-array.cc (gfc_conv_ss_descriptor): Copy class_container - field from gfc_se struct to gfc_ss_info struct. - (gfc_conv_expr_descriptor): Copy class_container field from - gfc_ss_info struct to gfc_se struct. - * trans-expr.cc (gfc_conv_class_to_class): Use class container - set in class_container field if available. - (gfc_conv_variable): Set class_container field on encountering - class variables or components, clear it on encountering - non-class components. - (gfc_conv_procedure_call): Evaluate data ref to a pointer now, - and replace later references by usage of the pointer. - -2023-07-14 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/92178 - * trans-expr.cc (gfc_conv_procedure_call): Use a separate gfc_se - struct, initalized from parmse, to generate the class wrapper. - After the class wrapper code has been generated, copy it back - depending on whether parameter deallocation code has been - generated. - -2023-07-13 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/106050 - * symbol.cc (gfc_restore_last_undo_checkpoint): Release symbols - in reverse order. - -2023-07-12 Andre Vehreschild <vehre@gcc.gnu.org> - - PR fortran/102003 - * expr.cc (find_inquiry_ref): Replace len of pdt_string by - constant. - (simplify_ref_chain): Ensure input to find_inquiry_ref is - NULL. - (gfc_match_init_expr): Prevent PDT analysis for function calls. - (gfc_pdt_find_component_copy_initializer): Get the initializer - value for given component. - * gfortran.h (gfc_pdt_find_component_copy_initializer): New - function. - * simplify.cc (gfc_simplify_len): Replace len() of PDT with pdt - component ref or constant. - -2023-07-11 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110288 - * symbol.cc (gfc_copy_formal_args_intr): When deriving the formal - argument attributes from the actual ones for intrinsic procedure - calls, take special care of CHARACTER arguments that we do not - wrongly treat them formally as deferred-length. - -2023-07-08 Steve Kargl <sgk@troutmask.apl.washington.edu> - - PR fortran/99139 - PR fortran/99368 - * match.cc (gfc_match_namelist): Check for host associated or - defined types before applying default type. - (gfc_match_select_rank): Apply default type to selector of - unknown type if possible. - * resolve.cc (resolve_fl_variable): Do not apply local default - initialization to assumed rank entities. - -2023-07-08 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/92178 - * trans-expr.cc (gfc_conv_procedure_call): Check procedures for - allocatable dummy arguments with INTENT(OUT) and move deallocation - of actual arguments after evaluation of argument expressions before - the procedure is executed. - -2023-07-08 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110585 - * arith.cc (gfc_compare_expr): Handle equality comparison of constant - complex gfc_expr arguments. - -2023-07-05 Robin Dapp <rdapp@ventanamicro.com> - Juzhe-Zhong <juzhe.zhong@rivai.ai> - - * trans-types.cc (gfc_type_for_mode): Ditto. - -2023-06-28 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110360 - * trans-expr.cc (gfc_conv_procedure_call): For non-constant string - argument passed to CHARACTER(LEN=1),VALUE dummy, ensure proper - dereferencing and truncation of string to length 1. - -2023-06-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/49213 - * expr.cc (gfc_is_ptr_fcn): Remove reference to class_pointer. - * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow - associate names with pointer function targets to be used in - variable definition context. - * trans-decl.cc (get_symbol_decl): Remove extraneous line. - * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Obtain - size of intrinsic and character expressions. - (gfc_trans_subcomponent_assign): Expand assignment to class - components to include intrinsic and character expressions. - -2023-06-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110360 - * trans-expr.cc (gfc_conv_procedure_call): Truncate constant string - argument of length > 1 passed to scalar CHARACTER(1),VALUE dummy. - -2023-06-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/110360 - * trans-expr.cc (gfc_conv_procedure_call): Pass actual argument - to scalar CHARACTER(1),VALUE dummy argument by value. - -2023-06-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/87477 - PR fortran/88688 - PR fortran/94380 - PR fortran/107900 - PR fortran/110224 - * decl.cc (char_len_param_value): Fix memory leak. - (resolve_block_construct): Remove unnecessary static decls. - * expr.cc (gfc_is_ptr_fcn): New function. - (gfc_check_vardef_context): Use it to permit pointer function - result selectors to be used for associate names in variable - definition context. - * gfortran.h: Prototype for gfc_is_ptr_fcn. - * match.cc (build_associate_name): New function. - (gfc_match_select_type): Use the new function to replace inline - version and to build a new associate name for the case where - the supplied associate name is already used for that purpose. - * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow - associate names with pointer function targets to be used in - variable definition context. - * trans-decl.cc (gfc_get_symbol_decl): Unlimited polymorphic - variables need deferred initialisation of the vptr. - (gfc_trans_deferred_vars): Do the vptr initialisation. - * trans-stmt.cc (trans_associate_var): Ensure that a pointer - associate name points to the target of the selector and not - the selector itself. - -2023-06-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/108961 - * trans-expr.cc (gfc_conv_procedure_call): The hidden string - length must not be passed to a formal arg of type(cptr). - -2023-06-20 Tobias Burnus <tobias@codesourcery.com> - - * dump-parse-tree.cc (show_omp_namelist): Fix dump of the allocator - modifier of OMP_LIST_ALLOCATE. - -2023-06-20 Tobias Burnus <tobias@codesourcery.com> - - * match.cc (gfc_match_char): Match with '%S' a symbol - with host_assoc = 1. - -2023-06-19 Tobias Burnus <tobias@codesourcery.com> - - * intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Also - add references to the OpenMP 5.1 and 5.2 spec; add omp_initial_device - and omp_invalid_device named constants. - -2023-06-13 Harald Anlauf <anlauf@gmx.de> - Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/86277 - * trans-array.cc (gfc_trans_allocate_array_storage): When passing a - zero-sized array with fixed (= non-dynamic) size, allocate temporary - by the caller, not by the callee. - -2023-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> - - * f95-lang.cc (gfc_init_builtin_functions): Add fmax() and - fmin() built-ins, and their variants. - * mathbuiltins.def: Add FMAX and FMIN built-ins. - * trans-intrinsic.cc (conv_intrinsic_ieee_minmax): New function. - (gfc_conv_ieee_arithmetic_function): Handle IEEE_MIN_NUM and - IEEE_MAX_NUM functions. - -2023-06-09 Jakub Jelinek <jakub@redhat.com> - - PR fortran/96024 - * primary.cc (gfc_convert_to_structure_constructor): Only do - constant string ctor length verification and truncation/padding - if constant length has INTEGER type. - -2023-06-08 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/87477 - PR fortran/99350 - PR fortran/107821 - PR fortran/109451 - * decl.cc (char_len_param_value): Simplify a copy of the expr - and replace the original if there is no error. - * gfortran.h : Remove the redundant field 'rankguessed' from - 'gfc_association_list'. - * resolve.cc (resolve_assoc_var): Remove refs to 'rankguessed'. - (resolve_variable): Associate names with constant or structure - constructor targets cannot have array refs. - * trans-array.cc (gfc_conv_expr_descriptor): Guard expression - character length backend decl before using it. Suppress the - assignment if lhs equals rhs. - * trans-io.cc (gfc_trans_transfer): Scalarize transfer of - associate variables pointing to a variable. Add comment. - * trans-stmt.cc (trans_associate_var): Remove requirement that - the character length be deferred before assigning the value - returned by gfc_conv_expr_descriptor. Also, guard the backend - decl before testing with VAR_P. - -2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com> - Tobias Burnus <tobias@codesourcery.com> - - * dump-parse-tree.cc (show_omp_namelist): Display 'present' map - modifier. - (show_omp_clauses): Display 'present' motion modifier for 'to' - and 'from' clauses. - * gfortran.h (enum gfc_omp_map_op): Add entries with 'present' - modifiers. - (struct gfc_omp_namelist): Add 'present_modifer'. - * openmp.cc (gfc_match_motion_var_list): New, handles optional - 'present' modifier for to/from clauses. - (gfc_match_omp_clauses): Call it for to/from clauses; parse 'present' - in defaultmap and map clauses. - (resolve_omp_clauses): Allow 'present' modifiers on 'target', - 'target data', 'target enter' and 'target exit' directives. - * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers - to tree node for 'map', 'to' and 'from' clauses. Apply 'present' for - defaultmap. - -2023-06-02 Steve Kargl <kargl@gcc.gnu.org> - - PR fortran/100607 - * resolve.cc (resolve_select_rank): Remove duplicate error. - (resolve_fl_var_and_proc): Prevent NULL pointer dereference and - suppress error message for temporary. - -2023-06-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/87477 - * parse.cc (parse_associate): Replace the existing evaluation - of the target rank with calls to gfc_resolve_ref and - gfc_expression_rank. Identify untyped target function results - with structure constructors by finding the appropriate derived - type. - * resolve.cc (resolve_symbol): Allow associate variables to be - assumed shape. - -2023-06-01 Harald Anlauf <anlauf@gmx.de> - - PR fortran/88552 - * decl.cc (gfc_match_kind_spec): Use error path on missing right - parenthesis. - (gfc_match_decl_type_spec): Use error return when an error occurred - during matching a KIND specifier. - -2023-06-01 Tobias Burnus <tobias@codesourcery.com> - - * parse.cc (decode_omp_directive): Accept all pure directives - inside a PURE procedures; handle 'error at(execution). - -2023-05-26 Tobias Burnus <tobias@codesourcery.com> - - * dump-parse-tree.cc (show_omp_namelist): Update allocator, fix - align dump. - (show_omp_node, show_code_node): Handle EXEC_OMP_ALLOCATE. - * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE and ..._EXEC. - (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE. - (struct gfc_omp_namelist): Add 'allocator' to 'u2' union. - (struct gfc_namespace): Add omp_allocate. - (gfc_resolve_omp_allocate): New. - * match.cc (gfc_free_omp_namelist): Free 'u2.allocator'. - * match.h (gfc_match_omp_allocate, gfc_match_omp_allocators): New. - * openmp.cc (gfc_omp_directives): Uncomment allocate/allocators. - (gfc_match_omp_variable_list): Add bool arg for - rejecting listening common-block vars separately. - (gfc_match_omp_clauses): Update for u2.allocators. - (OMP_ALLOCATORS_CLAUSES, gfc_match_omp_allocate, - gfc_match_omp_allocators, is_predefined_allocator, - gfc_resolve_omp_allocate): New. - (resolve_omp_clauses): Update 'allocate' clause checks. - (omp_code_to_statement, gfc_resolve_omp_directive): Handle - OMP ALLOCATE/ALLOCATORS. - * parse.cc (in_exec_part): New global var. - (check_omp_allocate_stmt, parse_openmp_allocate_block): New. - (decode_omp_directive, case_exec_markers, case_omp_decl, - gfc_ascii_statement, parse_omp_structured_block): Handle - OMP allocate/allocators. - (verify_st_order, parse_executable): Set in_exec_part. - * resolve.cc (gfc_resolve_blocks, resolve_codes): Handle - allocate/allocators. - * st.cc (gfc_free_statement): Likewise. - * trans.cc (trans_code): Likewise. - * trans-openmp.cc (gfc_trans_omp_directive): Likewise. - (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for - u2.allocator, fix for u.align. - -2023-05-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104350 - * simplify.cc (simplify_size): Reject DIM argument of intrinsic SIZE - with error when out of valid range. - -2023-05-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/103794 - * check.cc (gfc_check_reshape): Expand constant arguments SHAPE and - ORDER before checking. - * gfortran.h (gfc_is_constant_array_expr): Add prototype. - * iresolve.cc (gfc_resolve_reshape): Expand constant argument SHAPE. - * simplify.cc (is_constant_array_expr): If array is determined to be - constant, expand small array constructors if needed. - (gfc_is_constant_array_expr): Wrapper for is_constant_array_expr. - (gfc_simplify_reshape): Fix check for insufficient elements in SOURCE - when no padding specified. - -2023-05-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/103716 - * resolve.cc (gfc_resolve_ref): Conversion of array_ref into an - element should be done for all characters without a len expr, - not just deferred lens, and for integer expressions. - * trans-expr.cc (conv_inquiry): For len and kind inquiry refs, - set the se string_length to NULL_TREE. - -2023-05-23 Paul Thomas <pault@gcc.gnu.org> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/97122 - * decl.cc (variable_decl): Clean up white space issues. - (gfc_match_final_decl): Declaration of finalizable derived type - is allowed in a submodule. - -2023-05-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * expr.cc (gfc_get_corank): Use CLASS_DATA from gfortran.h. - * resolve.cc (resolve_component): Same. - (resolve_fl_derived0): Same. - * simplify.cc (gfc_simplify_extends_type_of): Same. - (simplify_cobound): Same. - -2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * trans-array.cc (is_pointer_array): Use _P() defines from tree.h. - (gfc_conv_scalarized_array_ref): Ditto. - (gfc_conv_array_ref): Ditto. - * trans-decl.cc (gfc_finish_decl): Ditto. - (gfc_get_symbol_decl): Ditto. - * trans-expr.cc (gfc_trans_pointer_assignment): Ditto. - (gfc_trans_arrayfunc_assign): Ditto. - (gfc_trans_assignment_1): Ditto. - * trans-intrinsic.cc (gfc_conv_intrinsic_minmax): Ditto. - (conv_intrinsic_ieee_value): Ditto. - * trans-io.cc (gfc_convert_array_to_string): Ditto. - * trans-openmp.cc (gfc_omp_is_optional_argument): Ditto. - (gfc_trans_omp_clauses): Ditto. - * trans-stmt.cc (gfc_conv_label_variable): Ditto. - * trans.cc (gfc_build_addr_expr): Ditto. - (get_array_span): Ditto. - -2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - PR fortran/78798 - * array.cc (compare_bounds): Use narrower return type. - (gfc_compare_array_spec): Likewise. - (is_constant_element): Likewise. - (gfc_constant_ac): Likewise. - * check.cc (dim_rank_check): Likewise. - * cpp.cc (gfc_cpp_init_options): Likewise. - (dump_macro): Likewise. - * cpp.h (gfc_cpp_handle_option): Likewise. - * dependency.cc (gfc_ref_needs_temporary_p): Likewise. - (gfc_check_argument_dependency): Likewise. - (gfc_check_fncall_dependency): Likewise. - (ref_same_as_full_array): Likewise. - * dependency.h (gfc_check_fncall_dependency): Likewise. - (gfc_dep_resolver): Likewise. - (gfc_are_equivalenced_arrays): Likewise. - * expr.cc (gfc_copy_ref): Likewise. - (gfc_kind_max): Likewise. - (numeric_type): Likewise. - * gfortran.h (gfc_at_end): Likewise. - (gfc_at_eof): Likewise. - (gfc_at_bol): Likewise. - (gfc_at_eol): Likewise. - (gfc_define_undef_line): Likewise. - (gfc_wide_is_printable): Likewise. - (gfc_wide_is_digit): Likewise. - (gfc_wide_fits_in_byte): Likewise. - (gfc_find_sym_tree): Likewise. - (gfc_generic_intrinsic): Likewise. - (gfc_specific_intrinsic): Likewise. - (gfc_intrinsic_actual_ok): Likewise. - (gfc_has_vector_index): Likewise. - (gfc_numeric_ts): Likewise. - (gfc_impure_variable): Likewise. - (gfc_pure): Likewise. - (gfc_implicit_pure): Likewise. - (gfc_elemental): Likewise. - (gfc_pure_function): Likewise. - (gfc_implicit_pure_function): Likewise. - (gfc_compare_array_spec): Likewise. - (gfc_constant_ac): Likewise. - (gfc_expanded_ac): Likewise. - (gfc_check_digit): Likewise. - * intrinsic.cc (gfc_find_subroutine): Likewise. - (gfc_generic_intrinsic): Likewise. - (gfc_specific_intrinsic): Likewise. - * io.cc (compare_to_allowed_values): Likewise. And remove - unneeded forward declaration. - * parse.cc: Likewise. - * parse.h (gfc_check_do_variable): Likewise. - * primary.cc (gfc_check_digit): Likewise. - * resolve.cc (resolve_structure_cons): Likewise. - (pure_stmt_function): Likewise. - (gfc_pure_function): Likewise. - (impure_stmt_fcn): Likewise. - (resolve_forall_iterators): Likewise. - (resolve_data): Likewise. - (gfc_impure_variable): Likewise. - (gfc_pure): Likewise. - (gfc_unset_implicit_pure): Likewise. - * scanner.cc (wide_is_ascii): Likewise. - (gfc_wide_toupper): Likewise. - (gfc_open_included_file): Likewise. - (gfc_at_end): Likewise. - (gfc_at_eof): Likewise. - (gfc_at_bol): Likewise. - (skip_comment_line): Likewise. - (gfc_gobble_whitespace): Likewise. - * symbol.cc (gfc_find_symtree_in_proc): Likewise. - * trans-array.cc: Likewise. - * trans-decl.cc (gfc_set_decl_assembler_name): Likewise. - * trans-types.cc (gfc_get_element_type): Likewise. - (gfc_add_field_to_struct): Likewise. - * trans-types.h (gfc_copy_dt_decls_ifequal): Likewise. - (gfc_return_by_reference): Likewise. - (gfc_is_nodesc_array): Likewise. - * trans.h (gfc_can_put_var_on_stack): Likewise. - -2023-05-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/95374 - PR fortran/104352 - * decl.cc (add_init_expr_to_sym): Set shape of initializer also for - zero-sized arrays, so that bounds violations can be detected later. - -2023-05-17 Tobias Burnus <tobias@codesourcery.com> - - * trans-decl.cc (gfc_get_symbol_decl): Add attributes - such as 'declare target' also to hidden artificial - variable for deferred-length character variables. - * trans-openmp.cc (gfc_trans_omp_array_section, - gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data): - Improve mapping of array descriptors and deferred-length - string variables. - -2023-05-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/105152 - PR fortran/100193 - PR fortran/87496 - PR fortran/103389 - PR fortran/104429 - PR fortran/82774 - * interface.cc (gfc_compare_actual_formal): Emit an error if an - unlimited polymorphic actual is not matched either to an - unlimited or assumed type formal argument. - * resolve.cc (resolve_ordinary_assign): Emit an error if the - var expression of an ordinary assignment is a proc pointer - component. - * trans-array.cc (gfc_walk_array_ref): Provide assumed shape - arrays coming from interface mapping with a viable arrayspec. - * trans-expr.cc (gfc_conv_intrinsic_to_class): Tidy up flagging - of unlimited polymorphic 'class_ts'. - (gfc_conv_gfc_desc_to_cfi_desc): Assumed type is unlimited - polymorphic and should accept any actual type. - (gfc_conv_procedure_call): Replace dreadful kludge with a call - to gfc_finalize_tree_expr. Avoid dereferencing a void pointer - by giving it the pointer type of the actual argument. - (alloc_scalar_allocatable_subcomponent): Shorten the function - name and replace the symbol argument with the se string length. - If a deferred length character length is either not present or - is not a variable, give the typespec a variable and assign the - string length to that. Use gfc_deferred_strlen to find the - hidden string length component. - (gfc_trans_subcomponent_assign): Convert the expression before - the call to alloc_scalar_allocatable_subcomponent so that a - good string length is provided. - (gfc_trans_structure_assign): Remove the unneeded derived type - symbol from calls to gfc_trans_subcomponent_assign. - -2023-05-15 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109846 - * expr.cc (gfc_check_vardef_context): Check appropriate pointer - attribute for CLASS vs. non-CLASS function result in variable - definition context. - -2023-05-11 Xi Ruoyao <xry111@xry111.site> - - * Make-lang.in: Use grep instead of fgrep. - -2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * dump-parse-tree.cc (gfc_debug_expr): Remove forward declaration. - (debug): Add DEBUG_FUNCTION. - (show_code_node): Remove erroneous whitespace. - -2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - PR fortran/109624 - * dump-parse-tree.cc (debug): New function for gfc_namespace. - (gfc_debug_code): Delete forward declaration. - (show_attr): Make sure to print balanced braces. - -2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * resolve.cc (resolve_select_type): Fix coding style. - -2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * resolve.cc (resolve_select_type): Call free() unconditionally. - -2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - PR fortran/68800 - * expr.cc (find_array_section): Fix mpz memory leak. - * simplify.cc (gfc_simplify_reshape): Fix mpz memory leaks in - error paths. - -2023-05-05 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109641 - * arith.cc (eval_intrinsic): Check conformability of ranks of operands - for intrinsic binary operators before performing type conversions. - * gfortran.h (gfc_op_rank_conformable): Add prototype. - * resolve.cc (resolve_operator): Check conformability of ranks of - operands for intrinsic binary operators before performing type - conversions. - (gfc_op_rank_conformable): New helper function to compare ranks of - operands of binary operator. - -2023-05-04 Julian Brown <julian@codesourcery.com> - - PR fortran/109622 - * openmp.cc (resolve_omp_clauses): Add diagnostic for - non-pointer/non-allocatable attach/detach. - * trans-openmp.cc (gfc_trans_omp_clauses): Remove dereference for - pointer-to-scalar derived type component attach/detach. Fix - attach/detach handling for descriptors. - -2023-04-28 Julian Brown <julian@codesourcery.com> - - PR fortran/109622 - * trans-openmp.cc (gfc_trans_omp_clauses): Attach/detach clause fixes. - -2023-04-28 Tobias Burnus <tobias@codesourcery.com> - - * gfortran.texi: Fix typos. - * decl.cc: Fix typos in comments and in a variable name. - * arith.cc: Fix comment typos. - * check.cc: Likewise. - * class.cc: Likewise. - * dependency.cc: Likewise. - * expr.cc: Likewise. - * frontend-passes.cc: Likewise. - * gfortran.h: Likewise. - * intrinsic.cc: Likewise. - * iresolve.cc: Likewise. - * match.cc: Likewise. - * module.cc: Likewise. - * primary.cc: Likewise. - * resolve.cc: Likewise. - * simplify.cc: Likewise. - * trans-array.cc: Likewise. - * trans-decl.cc: Likewise. - * trans-expr.cc: Likewise. - * trans-intrinsic.cc: Likewise. - * trans-openmp.cc: Likewise. - * trans-stmt.cc: Likewise. - -2023-04-25 Tobias Burnus <tobias@codesourcery.com> - - * openmp.cc (gfc_resolve_omp_do_blocks): Handle zero - or more than one exec statements before/after 'omp scan'. - * trans-openmp.cc (gfc_trans_omp_do): Likewise. - -2023-04-22 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/109500 - * interface.cc (gfc_compare_actual_formal): Reject allocatable - functions being used as actual argument for allocable dummy. - -2023-04-14 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109511 - * simplify.cc (gfc_simplify_set_exponent): Fix implementation of - compile-time simplification of intrinsic SET_EXPONENT for argument - X < 1 and for I < 0. - -2023-04-14 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/104272 - * gfortran.h : Add expr3_not_explicit bit field to gfc_code. - * resolve.cc (resolve_allocate_expr): Set bit field when the - default initializer is applied to expr3. - * trans-stmt.cc (gfc_trans_allocate): If expr3_not_explicit is - set, do not deallocate expr3. - -2023-04-13 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109492 - * trans-expr.cc (gfc_conv_power_op): Use absu_hwi and - unsigned HOST_WIDE_INT for portability. - -2023-04-12 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104312 - * resolve.cc (resolve_entries): Handle functions with ENTRY and - ALLOCATABLE results. - * trans-expr.cc (gfc_conv_procedure_call): Functions with a result - with the POINTER or ALLOCATABLE attribute shall not get any special - treatment with -ff2c, as they cannot be written in Fortran 77. - * trans-types.cc (gfc_return_by_reference): Likewise. - (gfc_get_function_type): Likewise. - -2023-04-12 Harald Anlauf <anlauf@gmx.de> - - PR fortran/61615 - PR fortran/99982 - * interface.cc (compare_parameter): Enable type and rank checks for - arguments of derived type from the intrinsic module ISO_C_BINDING. - -2023-04-08 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/87477 - * iresolve.cc (gfc_resolve_adjustl, gfc_resolve_adjustr): if - string length is deferred use the string typespec for result. - * resolve.cc (resolve_assoc_var): Handle parentheses around the - target expression. - (resolve_block_construct): Remove unnecessary static decls. - * trans-array.cc (gfc_conv_expr_descriptor): Guard string len - expression in condition. Improve handling of string length and - span, especially for substrings of the descriptor. - (duplicate_allocatable): Make element type more explicit with - 'eltype'. - * trans-decl.cc (gfc_get_symbol_decl): Emit a fatal error with - appropriate message instead of ICE if symbol type is unknown. - (gfc_generate_function_code): Set current locus to proc_sym - declared_at. - * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in - 'previous' and use if end expression in substring reference is - null. - (gfc_conv_string_length): Use gfc_conv_expr_descriptor if - 'expr_flat' is an array. Add post block to catch deallocation - of temporaries. - (gfc_conv_procedure_call): Assign the parmse string length to - the expression string length, if it is deferred. - (gfc_trans_alloc_subarray_assign): If this is a deferred string - length component, store the string length in the hidden comp. - Update the typespec length accordingly. Generate a new type - spec for the call to gfc_duplicate-allocatable in this case. - * trans-io.cc (gfc_trans_transfer): Scalarize transfer of - deferred character array components. - -2023-04-04 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104349 - * expr.cc (check_restricted): Adjust check for valid variables in - restricted expressions: make no exception for module variables. - -2023-04-01 Thomas Koenig <tkoenig@gcc.gnu.org> - - * dump-parse-tree.cc (get_c_type_name): Fix "long_long" - type name to be "long long". - -2023-03-30 Andrew Pinski <apinski@marvell.com> - - * dump-parse-tree.cc (get_c_type_name): Fix "long_long" - type name to be "long long". Add a comment on why adding - 2 to the name too. - -2023-03-28 Jakub Jelinek <jakub@redhat.com> - - PR fortran/109314 - * openmp.cc (gfc_omp_absent_contains_clause): Fix typo in diagnostics - - composit -> composite. - -2023-03-25 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104321 - * trans-decl.cc (gfc_conv_cfi_to_gfc): Remove dead code. - -2023-03-24 Harald Anlauf <anlauf@gmx.de> - - * expr.cc (free_expr0): Free also BOZ strings as part of an expression. - -2023-03-24 Haochen Gui <guihaoc@gcc.gnu.org> - Tobias Burnus <tobias@codesourcery.com> - - PR target/103628 - * target-memory.cc (gfc_interpret_float): Return FAIL when - native_interpret_expr gets a NULL tree. - * arith.cc (gfc_hollerith2real): Return NULL when - gfc_interpret_float fails. - * error.cc (gfc_buffered_p): Define. - * gfortran.h (gfc_buffered_p): Declare. - * intrinsic.cc: Add diagnostic.h to include list. - (do_simplify): Save errorcount and check it at finish. Report a - "Cannot simplify expression" error on a bad result if error count - doesn't change and no other errors buffered. - -2023-03-22 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/104572 - * resolve.cc (gfc_resolve_finalizers): Argument of a FINAL subroutine - cannot be an alternate return. - -2023-03-21 Harald Anlauf <anlauf@gmx.de> - - PR fortran/99036 - * decl.cc (gfc_match_modproc): Reject MODULE PROCEDURE if not in a - generic module interface. - -2023-03-21 Arsen Arsenović <arsen@aarsen.me> - - * invoke.texi: Remove usages of @gol. - * intrinsic.texi: Ditto. - -2023-03-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/109206 - * trans-array.cc (gfc_trans_array_constructor_value): Correct - incorrect setting of typespec. - -2023-03-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/109209 - * resolve.cc (generate_component_assignments): Restore the - exclusion of allocatable components from the loop. - -2023-03-20 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109216 - * invoke.texi: Correct documentation of how underscores are appended - to external names. - -2023-03-20 Harald Anlauf <anlauf@gmx.de> - - PR fortran/109186 - * simplify.cc (gfc_simplify_nearest): Fix off-by-one error in setting - up real kind-specific maximum exponent for mpfr. - -2023-03-20 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/87127 - * resolve.cc (check_host_association): If an external function - is typed but not declared explicitly to be external, change the - old symbol from a variable to an external function. - -2023-03-19 Harald Anlauf <anlauf@gmx.de> - - PR fortran/85877 - * resolve.cc (resolve_fl_procedure): Check for an explicit interface - of procedures with the BIND(C) attribute (F2018:15.4.2.2). - -2023-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> - - * gfortran.texi: Mention behavior on overflow. - -2023-03-18 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/103854 - PR fortran/96122 - PR fortran/37336 - * class.cc (finalize_component): Include the missing arguments - in the call to the component's finalizer wrapper. - (has_finalizer_component): Do not return true for procedure - pointer components. - (finalizer_insert_packed_call): Remove the redundant argument - in the call to the final subroutine. - (generate_finalization_wrapper): Add support for assumed rank - finalizers. - (gfc_may_be_finalized): New helper function. - * dump-parse-tree.cc (write_proc): Whitespace. - * gfortran.h : Add prototype for gfc_may_be_finalized. - * resolve.cc (resolve_function): Correct derived types that - have an incomplete namespace. - (resolve_where, gfc_resolve_where_code_in_forall, - gfc_resolve_forall_body, gfc_resolve_code): Check that the op - code is still EXEC_ASSIGN. If it is set lhs to must finalize. - (is_finalizable_type): New function. - (generate_component_assignments): Set must_finalize if needed. - (gfc_resolve_finalizers): Error if assumed rank finalizer is - not the only one. Warning on lack of scalar finalizer modified - to account for assumed rank finalizers. - (generate_final_call): New function. - (generate_component_assignments): Enclose the outermost call in - a block to capture automatic deallocation and final calls. - Set must_finalize as required to satisfy the standards. Use an - explicit pointer assignment for pointer components to capture - finalization of the target. Likewise use explicit assignment - for allocatable components. Do not use the temporary copy of - the lhs in defined assignment if the component is allocatable. - Put the temporary in the same namespace as the lhs symbol if - the component may be finalized. Remove the leading assignment - from the expansion of assignment of components that have their - own defined assignment components. Suppress finalization of - assignment of temporary components to the lhs. Make an explicit - final call for the rhs function temporary if it exists. - (gfc_resolve_code): Set must_finalize for assignments with an - array constructor on the rhs. - (gfc_resolve_finalizers): Ensure that an assumed rank finalizer - is the only finalizer for that type and correct the surprising - warning for the lack of a scalar finalizer. - (check_defined_assignments): Handle allocatable components. - (resolve_fl_derived): Set referenced the vtab for use - associated symbols. - (resolve_symbol): Set referenced an unreferenced symbol that - will be finalized. - * trans-array.cc (gfc_trans_array_constructor_value): Add code - to finalize the constructor result. Warn that this feature was - removed in F2018 and that it is suppressed by -std=2018. - (trans_array_constructor): Add finalblock, pass to previous - and apply to loop->post if filled. - (gfc_add_loop_ss_code): Add se finalblock to outer loop post. - (gfc_trans_array_cobounds, gfc_trans_array_bounds): Add any - generated finalization code to the main block. - (structure_alloc_comps): Add boolean argument to suppress - finalization and use it for calls from - gfc_deallocate_alloc_comp_no_caf. Otherwise it defaults to - false. - (gfc_copy_alloc_comp_no_fini): New wrapper for - structure_alloc_comps. - (gfc_alloc_allocatable_for_assignment): Suppress finalization - by setting new arg in call to gfc_deallocate_alloc_comp_no_caf. - (gfc_trans_deferred_array): Use gfc_may_be_finalized and do not - deallocate the components of entities with a leading '_' in the - name that are also marked as artificial. - * trans-array.h : Add the new boolean argument to the prototype - of gfc_deallocate_alloc_comp_no_caf with a default of false. - Add prototype for gfc_copy_alloc_comp_no_fini. - * trans-decl.cc(init_intent_out_dt): Tidy up the code. - * trans-expr.cc (gfc_init_se): Initialize finalblock. - (gfc_conv_procedure_call): Use gfc_finalize_tree_expr to - finalize function results. Replace in-line block for class - results with call to new function. - (gfc_conv_expr): Finalize structure constructors for F2003 and - F2008. Warn that this feature was deleted in F2018 and, unlike - array constructors, is not default. Add array constructor - finalblock to the post block. - (gfc_trans_scalar_assign): Suppress finalization by setting new - argument in call to gfc_deallocate_alloc_comp_no_caf. Add the - finalization blocks to the main block. - (gfc_trans_arrayfunc_assign): Use gfc_assignment_finalizer_call - and ensure that finalization occurs after the evaluation of the - rhs but using the initial value for the lhs. Finalize rhs - function results using gfc_finalize_tree_expr. - (trans_class_assignment, gfc_trans_assignment_1): As previous - function, taking care to order evaluation, assignment and - finalization correctly. - * trans-io.cc (gfc_trans_transfer): Add the final block. - * trans-stmt.cc (gfc_trans_call, gfc_trans_allocate): likewise. - (trans_associate_var): Nullify derived allocatable components - and finalize function targets with defined assignment - components on leaving the block scope. - (trans_allocate): Finalize source expressions, if required, - and set init_expr artificial temporarily to suppress the - finalization in gfc_trans_assignment. - * trans.cc (gfc_add_finalizer_call): Do not finalize the - temporaries generated in type assignment with defined - assignment components. - (gfc_assignment_finalizer_call): New function. - (gfc_finalize_tree_expr): New function. - * trans.h: Add finalblock to gfc_se. Add the prototypes for - gfc_finalize_tree_expr and gfc_assignment_finalizer_call. - -2023-03-15 Harald Anlauf <anlauf@gmx.de> - Tobias Burnus <tobias@codesourcery.com> - - PR fortran/58331 - * interface.cc (compare_parameter): Adjust check of array dummy - arguments to handle the case of CLASS variables. - -2023-03-11 Harald Anlauf <anlauf@gmx.de> - - PR fortran/106945 - * trans-expr.cc (gfc_copy_class_to_class): Convert element counts in - bounds check to common type for comparison. - -2023-03-10 Harald Anlauf <anlauf@gmx.de> - - PR fortran/104332 - * resolve.cc (resolve_symbol): Avoid NULL pointer dereference while - checking a symbol with the BIND(C) attribute. - -2023-03-05 Harald Anlauf <anlauf@gmx.de> - Tobias Burnus <tobias@codesourcery.com> - - PR fortran/106856 - * class.cc (gfc_build_class_symbol): Handle update of attributes of - existing class container. - (gfc_find_derived_vtab): Fix several memory leaks. - (find_intrinsic_vtab): Ditto. - * decl.cc (attr_decl1): Manage update of symbol attributes from - CLASS attributes. - * primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or - updated from the class container. - * symbol.cc (free_old_symbol): Adjust management of symbol versions - to not prematurely free array specs while working on the declation - of CLASS variables. - -2023-03-01 Tobias Burnus <tobias@codesourcery.com> - - PR middle-end/108546 - * trans-openmp.cc (gfc_trans_omp_clauses): Fix mapping of - type(C_ptr) variables. - -2023-02-27 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108937 - * trans-intrinsic.cc (gfc_conv_intrinsic_ibits): Handle corner case - LEN argument of IBITS equal to BITSIZE(I). - -2023-02-25 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/108923 - * intrinsic.cc (get_intrinsic_dummy_arg, - set_intrinsic_dummy_arg): Rename the former to the latter. - Remove the return value, add a reference to the lhs as argument, - and do the pointer assignment inside the function. Don't do - it if the pointer is already non-NULL. - (sort_actual): Update caller. - -2023-02-25 Harald Anlauf <anlauf@gmx.de> - - * arith.cc (gfc_real2int): Clear mpfr variable after use. - -2023-02-25 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/108621 - * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Skip setting of - bounds of CFI desc for 'pointer,intent(out)'. - -2023-02-24 Rimvydas Jasinskas <rimvydas.jas@gmail.com> - - * trans-decl.cc (gfc_finish_var_decl): Apply attribute. - (generate_local_decl): Add diagnostic for dummy and local variables. - -2023-02-24 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/108923 - * expr.cc (gfc_free_actual_arglist): Free associated_dummy - memory. - (gfc_copy_actual_arglist): Make a copy of the associated_dummy - field if it is set in the original element. - -2023-02-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108924 - * frontend-passes.cc (do_subscript): Clear used gmp variable. - -2023-02-23 Arsen Arsenović <arsen@aarsen.me> - - * invoke.texi: Reorder index entries around @items. - -2023-02-23 Arsen Arsenović <arsen@aarsen.me> - - * invoke.texi: Reorder @opindex commands to precede @items they - relate to. - -2023-02-22 Harald Anlauf <anlauf@gmx.de> - - PR fortran/96024 - * resolve.cc (resolve_component): The type of a CHARACTER length - expression must be INTEGER. - -2023-02-21 Harald Anlauf <anlauf@gmx.de> - - PR fortran/96025 - * parse.cc (check_function_result_typed): Improve type check of - specification expression for character length and return status. - (parse_spec): Use status from above. - * resolve.cc (resolve_fntype): Prevent use of invalid specification - expression for character length. - -2023-02-16 Patrick Palka <ppalka@redhat.com> - - * gfortran.h: Mechanically drop static from static inline - functions via s/^static inline/inline/g. - -2023-02-15 Steve Kargl <kargl@gcc.gnu.org> - - PR fortran/103608 - * frontend-passes.cc (do_intent): Catch NULL pointer dereference on - reference to invalid formal argument. - -2023-02-15 Steve Kargl <kargl@gcc.gnu.org> - - PR fortran/104554 - * resolve.cc (check_assumed_size_reference): Avoid NULL pointer - dereference. - -2023-02-15 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/108512 - * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop' - directives. - (gfc_resolve_do_iterator): Set a source location for added - 'private'-clause arguments. - * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks - also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for - combined directives with loop + '{masked,master} taskloop (simd)'. - -2023-02-13 Harald Anlauf <anlauf@gmx.de> - - PR fortran/103475 - * primary.cc (gfc_expr_attr): Avoid NULL pointer dereference for - invalid use of CLASS variable. - -2023-02-13 Rimvydas Jasinskas <rimvydas.jas@gmail.com> - - * decl.cc: Add EXT_ATTR_NOINLINE, EXT_ATTR_NORETURN, EXT_ATTR_WEAK. - * gfortran.h (ext_attr_id_t): Ditto. - * gfortran.texi (GCC$ ATTRIBUTES): Document them. - * trans-decl.cc (build_function_decl): Apply them. - -2023-02-09 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/69636 - PR fortran/103779 - * intrinsic.cc (gfc_convert_chartype): Recover on invalid character - kind in conversion instead of generating an internal error. - -2023-02-09 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/107424 - * trans-openmp.cc (struct dovar_init_d): Add 'sym' and - 'non_unit_incr' members. - (gfc_nonrect_loop_expr): New. - (gfc_trans_omp_do): Call it; use normal loop bounds - for unit stride - and only create local loop var. - -2023-02-09 Tobias Burnus <tobias@codesourcery.com> - - * parse.cc (decode_omp_directive): Really ignore 'assumes' with - -fopenmp-simd. - -2023-02-08 Steve Kargl <kargl@gcc.gnu.org> - - PR fortran/103259 - * resolve.cc (resolve_common_vars): Avoid NULL pointer dereference - when a symbol's location is not set. - -2023-02-07 Harald Anlauf <anlauf@gmx.de> - - PR fortran/95107 - * trans-decl.cc (gfc_finish_var_decl): With -fno-automatic, do not - make ASSOCIATE variables TREE_STATIC. - -2023-02-05 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108592 - * arith.cc (gfc_arith_divide): Emit integer division truncation - warnings using gfc_warning instead of gfc_warning_now to prevent - redundant messages. - -2023-02-03 Jakub Jelinek <jakub@redhat.com> - - PR fortran/108451 - * trans-decl.cc (gfc_trans_use_stmts): Call clear_slot before - doing continue. - -2023-02-01 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108609 - * expr.cc (find_array_section): Add check to prevent interpreting an - mpz non-integer constant as an integer. - -2023-02-01 Tobias Burnus <tobias@codesourcery.com> - - * openmp.cc (resolve_omp_clauses): Check also for - power of two. - -2023-01-29 Mikael Morin <mikael@gcc.gnu.org> - - PR fortran/108450 - * check.cc (gfc_check_minloc_maxloc): Explicitly set argument name. - (gfc_check_findloc): Ditto. - -2023-01-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/103506 - * parse.cc (parse_module): Remove use of a bool error value - that prevented proper setting of the namespace pointer. - -2023-01-28 Harald Anlauf <anlauf@gmx.de> - Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/108527 - * resolve.cc (compare_bound_int): Expression to compare must be of - type INTEGER. - (compare_bound_mpz_t): Likewise. - (check_dimension): Fix comment on checks applied to array section - and clean up associated logic. - -2023-01-28 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108453 - * match.cc (gfc_match_common): A USE associated name shall not appear - in a COMMON block (F2018:C8121). - -2023-01-27 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/108558 - * trans-openmp.cc (gfc_split_omp_clauses): Handle has_device_addr. - -2023-01-26 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108544 - * resolve.cc (check_host_association): Extend host association check - so that it is not restricted to functions. Also prevent NULL pointer - dereference. - -2023-01-25 Steve Kargl <kargl@gcc.gnu.org> - - PR fortran/108528 - * array.cc (compare_bounds): Return false instead of generating an - internal error on an invalid argument type. - -2023-01-24 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108529 - * simplify.cc (simplify_transformation): Do not try to simplify - transformational intrinsic when the ARRAY argument has a NULL shape. - -2023-01-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108502 - * dependency.cc (gfc_check_dependency): Prevent NULL pointer - dereference while recursively checking expressions. - -2023-01-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108501 - * interface.cc (get_expr_storage_size): Check array subscript triplets - that we actually have integer values before trying to extract with - mpz_get_si. - -2023-01-23 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108420 - * iresolve.cc (check_charlen_present): Preserve character length if - there is no array constructor. - -2023-01-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/102595 - * data.cc (gfc_assign_data_value): Remove check for PARAMETER in DATA. - * primary.cc (match_variable): Add check for PARAMETER in DATA. - -2023-01-19 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108434 - * expr.cc (class_allocatable): Prevent NULL pointer dereference - or invalid read. - (class_pointer): Likewise. - -2023-01-17 Harald Anlauf <anlauf@gmx.de> - - PR fortran/108421 - * interface.cc (get_expr_storage_size): Check that we actually have - an integer value before trying to extract it with mpz_get_si. - -2023-01-12 Tobias Burnus <tobias@codesourcery.com> - - PR fortran/107706 - * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars. - -2023-01-11 Jakub Jelinek <jakub@redhat.com> - - PR fortran/108349 - * f95-lang.cc (gfc_init_builtin_function): Fix up function types - for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}. Formatting fixes. - -2023-01-10 Harald Anlauf <anlauf@gmx.de> - - PR fortran/97345 - * frontend-passes.cc (do_subscript): Clear used gmp variables. - -2023-01-02 Jakub Jelinek <jakub@redhat.com> - - * gfortranspec.cc (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) 2023 Free Software Foundation, Inc. +Copyright (C) 2024 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-2023 b/gcc/fortran/ChangeLog-2023 new file mode 100644 index 0000000..3b5c9a6 --- /dev/null +++ b/gcc/fortran/ChangeLog-2023 @@ -0,0 +1,2195 @@ +2023-12-28 Rimvydas Jasinskas <rimvydas.jas@gmail.com> + + PR fortran/81615 + * invoke.texi: Add Developer Options section. Move '-fdump-*' + to it. Add small examples about changed '-save-temps' behavior. + +2023-12-20 Rimvydas Jasinskas <rimvydas.jas@gmail.com> + + PR fortran/81615 + * lang-specs.h (F951_CPP_OPTIONS): Do not hardcode ".f90" extension + (F951_CPP_EXTENSION): Use .fi/.fii for fixed/free form sources + * options.cc (form_from_filename): Handle the new extensions + +2023-12-19 Sandra Loosemore <sandra@codesourcery.com> + + * gfortran.h: Include omp-selectors.h. + (enum gfc_omp_trait_property_kind): Delete, and replace all + references with equivalent omp_tp_type enumerators. + (struct gfc_omp_trait_property): Update for omp_tp_type. + (struct gfc_omp_selector): Replace string name with new enumerator. + (struct gfc_omp_set_selector): Likewise. + * openmp.cc (gfc_free_omp_trait_property_list): Update for + omp_tp_type. + (omp_construct_selectors): Delete. + (omp_device_selectors): Delete. + (omp_implementation_selectors): Delete. + (omp_user_selectors): Delete. + (gfc_ignore_trait_property_extension): New. + (gfc_ignore_trait_property_extension_list): New. + (gfc_match_omp_selector): Adjust for new representations and simplify + dispatch logic. Uniformly warn instead of sometimes error when an + unknown selector is found. + (gfc_match_omp_context_selector): Adjust for new representations. + Adjust error messages for extraneous/incorrect score. + (gfc_match_omp_context_selector_specification): Likewise. + * trans-openmp.cc (gfc_trans_omp_declare_variant): Adjust for + new representations. + +2023-12-19 Sandra Loosemore <sandra@codesourcery.com> + + * trans-openmp.cc (gfc_trans_omp_declare_varaint): Adjust for + new namelist property representation. + +2023-12-19 Sandra Loosemore <sandra@codesourcery.com> + + * trans-openmp.cc (gfc_trans_omp_declare_variant): Use new + constructors. + +2023-12-18 Harald Anlauf <anlauf@gmx.de> + + PR fortran/96580 + * check.cc (array_size_check): New helper function. + (gfc_check_date_and_time): Use it for checking minimum size of + VALUES argument. Update kind check to Fortran 2018. + * intrinsic.texi: Fix documentation of DATE_AND_TIME. + +2023-12-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/97592 + * trans-expr.cc (gfc_conv_procedure_call): For a contiguous dummy + with the TARGET attribute, the effective argument may still be + contiguous even if the actual argument is not simply-contiguous. + Allow packing to be decided at runtime by _gfortran_internal_pack. + +2023-12-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/112459 + * trans-array.cc (gfc_trans_array_constructor_value): Replace + gfc_notification_std with explicit logical expression that + selects F2003/2008 and excludes -std=default/gnu. + * trans-expr.cc (gfc_conv_expr): Ditto. + +2023-12-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/112834 + PR fortran/111853 + * match.cc (build_associate_name): Fix whitespace issues. + (select_type_set_tmp): If the selector is of unknown type, go + the SELECT TYPE selector to see if this is a function and, if + the result is available, use its typespec. + * parse.cc (parse_associate): Again, use the function result if + the type of the selector result is unknown. + * trans-stmt.cc (trans_associate_var): The expression has to be + of type class, for class_target to be true. Convert and fix + class functions. Pass the fixed expression. + * resolve.cc (gfc_expression_rank): Avoid null dereference. + +2023-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/112783 + * intrinsic.texi: Fix where no COMPLEX allowed. + * invoke.texi: Clarify -fdev-math. + +2023-12-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/112873 + * gfortran.texi: Update to reflect the changes. + * intrinsic.cc (add_functions): Update the standard that the + various degree trigonometric functions have been described in. + (gfc_check_intrinsic_standard): Add an error string for F2023. + * intrinsic.texi: Update accordingly. + +2023-12-13 Julian Brown <julian@codesourcery.com> + + * dependency.cc (gfc_omp_expr_prefix_same): New function. + * dependency.h (gfc_omp_expr_prefix_same): Add prototype. + * gfortran.h (gfc_omp_namelist): Add "duplicate_of" field to "u2" + union. + * trans-openmp.cc (dependency.h): Include. + (gfc_trans_omp_array_section): Adjust mapping node arrangement for + array descriptors. Use GOMP_MAP_TO_PSET or + GOMP_MAP_RELEASE/GOMP_MAP_DELETE with the OMP_CLAUSE_RELEASE_DESCRIPTOR + flag set. + (gfc_symbol_rooted_namelist): New function. + (gfc_trans_omp_clauses): Check subcomponent and subarray/element + accesses elsewhere in the clause list for pointers to derived types or + array descriptors, and adjust or drop mapping nodes appropriately. + Adjust for changes to mapping node arrangement. + (gfc_trans_oacc_executable_directive): Pass code op through. + +2023-12-13 Julian Brown <julian@codesourcery.com> + + * trans-openmp.cc (gfc_trans_omp_array_section): Add OPENMP parameter. + Use GOMP_MAP_ATTACH_DETACH instead of GOMP_MAP_ALWAYS_POINTER for + derived type components. + (gfc_trans_omp_clauses): Update calls to gfc_trans_omp_array_section. + +2023-12-11 Thomas Schwinge <thomas@codesourcery.com> + + * trans-openmp.cc (gfc_omp_call_is_alloc): Resolve ICE. + +2023-12-11 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.h (enum gfc_omp_requires_kind): Add + OMP_REQ_ATOMIC_MEM_ORDER_ACQUIRE and OMP_REQ_ATOMIC_MEM_ORDER_RELEASE. + (gfc_namespace): Add a 7th bit to omp_requires. + * module.cc (enum ab_attribute): Add AB_OMP_REQ_MEM_ORDER_ACQUIRE + and AB_OMP_REQ_MEM_ORDER_RELEASE + (mio_symbol_attribute): Handle it. + * openmp.cc (gfc_omp_requires_add_clause): Update for acquire/release. + (gfc_match_omp_requires): Likewise. + (gfc_match_omp_atomic): Handle them for atomic_default_mem_order. + * parse.cc: Likewise. + +2023-12-11 Tobias Burnus <tobias@codesourcery.com> + + * trans-openmp.cc (gfc_omp_call_add_alloc, + gfc_omp_call_is_alloc): Set 'fn spec'. + +2023-12-10 Harald Anlauf <anlauf@gmx.de> + + PR fortran/111503 + * expr.cc (gfc_is_simply_contiguous): Determine characteristics of + NULL() from optional MOLD argument, otherwise treat as contiguous. + * primary.cc (gfc_variable_attr): Derive attributes of NULL(MOLD) + from MOLD. + +2023-12-10 Harald Anlauf <anlauf@gmx.de> + + PR fortran/105543 + * resolve.cc (resolve_symbol): For a CLASS-valued function having a + RESULT clause, ensure that attr.class_ok is set for its symbol as + well as for its resolved result variable. + +2023-12-08 Tobias Burnus <tobias@codesourcery.com> + + * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_ALLOCATE + and EXEC_OMP_ALLOCATORS. + * f95-lang.cc (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): + Add 'ECF_LEAF | ECF_MALLOC' to existing 'ECF_NOTHROW'. + (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): Define. + * gfortran.h (gfc_omp_clauses): Add contained_in_target_construct. + * invoke.texi (-fopenacc, -fopenmp): Update based on C version. + (-fopenmp-simd): New, based on C version. + (-fopenmp-allocators): New. + * lang.opt (fopenmp-allocators): Add. + * openmp.cc (resolve_omp_clauses): For allocators/allocate directive, + add target and no dynamic_allocators diagnostic and more invalid + diagnostic. + * parse.cc (decode_omp_directive): Set contains_teams_construct. + * trans-array.h (gfc_array_allocate): Update prototype. + (gfc_conv_descriptor_version): New prototype. + * trans-decl.cc (gfc_init_default_dt): Fix comment. + * trans-array.cc (gfc_conv_descriptor_version): New. + (gfc_array_allocate): Support GOMP_alloc allocation. + (gfc_alloc_allocatable_for_assignment, structure_alloc_comps): + Handle GOMP_free/omp_realloc as needed. + * trans-expr.cc (gfc_conv_procedure_call): Likewise. + (alloc_scalar_allocatable_for_assignment): Likewise. + * trans-intrinsic.cc (conv_intrinsic_move_alloc): Likewise. + * trans-openmp.cc (gfc_trans_omp_allocators, + gfc_trans_omp_directive): Handle allocators/allocate directive. + (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New. + * trans-stmt.h (gfc_trans_allocate): Update prototype. + * trans-stmt.cc (gfc_trans_allocate): Support GOMP_alloc. + * trans-types.cc (gfc_get_dtype_rank_type): Set version field. + * trans.cc (gfc_allocate_using_malloc, gfc_allocate_allocatable): + Update to handle GOMP_alloc. + (gfc_deallocate_with_status, gfc_deallocate_scalar_with_status): + Handle GOMP_free. + (trans_code): Update call. + * trans.h (gfc_allocate_allocatable, gfc_allocate_using_malloc): + Update prototype. + (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New prototype. + * types.def (BT_FN_PTR_PTR_SIZE_PTRMODE_PTRMODE): New. + +2023-12-06 David Malcolm <dmalcolm@redhat.com> + + * error.cc (gfc_diagnostic_starter): Make diagnostic_info param + const. + (gfc_diagnostic_finalizer): Likewise. + +2023-12-05 Harald Anlauf <anlauf@gmx.de> + Tobias Burnus <tobias@codesourcery.com> + + PR fortran/100988 + * gfortran.h (IS_PROC_POINTER): New macro. + * trans-types.cc (gfc_sym_type): Use macro in determination if the + restrict qualifier can be used for a dummy variable. Fix logic to + allow the restrict qualifier also for optional arguments, and to + not apply it to pointer or proc_pointer arguments. + +2023-12-05 Richard Sandiford <richard.sandiford@arm.com> + + * f95-lang.cc (gfc_gnu_attribute_table): Add extra braces to work + around PR 16333 in older compilers. + +2023-12-02 Harald Anlauf <anlauf@gmx.de> + + PR fortran/93762 + PR fortran/100651 + * trans-array.cc (gfc_trans_deferred_array): Add presence check + for optional deferred-length character dummy arguments. + * trans-expr.cc (gfc_conv_missing_dummy): The character length for + deferred-length dummy arguments is passed by reference, so that + its value can be returned. Adjust handling for optional dummies. + +2023-12-02 Richard Sandiford <richard.sandiford@arm.com> + + * f95-lang.cc: Include attribs.h. + (gfc_attribute_table): Change to an array of scoped_attribute_specs + pointers, using... + (gfc_gnu_attributes, gfc_gnu_attribute_table): ...these new globals. + +2023-12-01 Harald Anlauf <anlauf@gmx.de> + + PR fortran/112772 + * trans-expr.cc (gfc_conv_class_to_class): Make copy-out conditional + on the presence of an OPTIONAL CLASS argument passed to an OPTIONAL + CLASS dummy. + +2023-11-30 Harald Anlauf <anlauf@gmx.de> + + PR fortran/112764 + * primary.cc (gfc_variable_attr): Set TARGET attribute of associating + entity dependent on TARGET or POINTER attribute of selector. + +2023-11-28 Andrew Jenner <andrew@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + + PR fortran/110415 + * trans-expr.cc (trans_class_vptr_len_assignment): Add + from_vptrp parameter. Populate it. Don't check for DECL_P + when deciding whether to create temporary. + (trans_class_pointer_fcn, gfc_trans_pointer_assignment): Add + NULL argument to trans_class_vptr_len_assignment calls. + (trans_class_assignment): Get rhs_vptr from + trans_class_vptr_len_assignment and use it for determining size + for allocation/reallocation. Use return value from realloc. + +2023-11-26 Harald Anlauf <anlauf@gmx.de> + + PR fortran/111880 + * resolve.cc (resolve_common_vars): Do not call gfc_add_in_common + for symbols that are USE associated or used in a submodule. + +2023-11-24 Tobias Burnus <tobias@codesourcery.com> + + * lang.opt (Wopenmp): Add, enabled by dafault and documented in C. + * openmp.cc (gfc_match_omp_declare_target, resolve_positive_int_expr, + resolve_nonnegative_int_expr, resolve_omp_clauses, + gfc_resolve_omp_do_blocks): Use OPT_Wopenmp with gfc_warning{,_now}. + +2023-11-24 Tobias Burnus <tobias@codesourcery.com> + + * openmp.cc (gfc_match_omp_depobj): Accept optionally an argument + to the destroy clause. + +2023-11-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/112609 + * check.cc (gfc_check_system_clock): Add checks on integer arguments + to SYSTEM_CLOCK specific to F2023. + * error.cc (notify_std_msg): Adjust to handle new features added + in F2023. + * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023_DEL, + remove obsolete option GFC_STD_F2008_TS and fix enumeration values. + * libgfortran.h (GFC_STD_F2023_DEL): Add and use in GFC_STD_OPT_F23. + * options.cc (set_default_std_flags): Add GFC_STD_F2023_DEL. + +2023-11-17 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023. + * invoke.texi (std,pedantic,Wampersand,Wtabs): Add -std=2023. + * lang.opt (std=f2023): Add. + * libgfortran.h (GFC_STD_F2023, GFC_STD_OPT_F23): Add. + * options.cc (set_default_std_flags): Add GFC_STD_F2023. + (gfc_init_options): Set max_continue_free to 1,000,000. + (gfc_post_options): Set flag_free_line_length if unset. + (gfc_handle_option): Add OPT_std_f2023, set max_continue_free = 255 + for -std=f2003, f2008 and f2018. + +2023-11-14 David Malcolm <dmalcolm@redhat.com> + + * error.cc (gfc_diagnostics_init): Use diagnostic_start_span. + +2023-11-07 Joseph Myers <joseph@codesourcery.com> + + * gfortran.h (gfc_real_info): Refer to C23 instead of C2X in + comment. + +2023-11-06 Martin Jambor <mjambor@suse.cz> + + * trans-decl.cc (gfc_build_builtin_function_decls): Fix fnspec of + generate_error. + +2023-11-04 David Malcolm <dmalcolm@redhat.com> + + * cpp.cc: Update for changes to diagnostic_context. + * error.cc: Likewise. + * options.cc: Likewise. + +2023-11-03 Harald Anlauf <anlauf@gmx.de> + + PR fortran/97245 + * match.cc (gfc_match_call): If a procedure pointer has already been + resolved, do not create a new symbol in a procedure reference of + the same name shadowing the first one if it is host-associated. + +2023-11-03 Harald Anlauf <anlauf@gmx.de> + + PR fortran/92887 + * trans-expr.cc (conv_cond_temp): Helper function for creation of a + conditional temporary. + (gfc_conv_procedure_call): Handle passing of allocatable or pointer + actual argument to dummy with OPTIONAL + VALUE attribute. Actual + arguments that are not allocated or associated are treated as not + present. + +2023-11-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/98498 + * interface.cc (upoly_ok): Defined operators using unlimited + polymorphic formal arguments must not override the intrinsic + operator use. + +2023-11-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/112316 + * parse.cc (parse_associate): Remove condition that caused this + regression. + +2023-10-30 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/104555 + * resolve.cc (resolve_select_type): If the selector expression + has no class component references and the expression is a + derived type, copy the typespec of the symbol to that of the + expression. + +2023-10-27 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/104649 + * decl.cc (gfc_match_formal_arglist): Handle conflicting declarations + of a MODULE PROCEDURE when one of the declarations is an alternate + return. + +2023-10-27 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/104625 + * expr.cc (gfc_check_vardef_context): Check that the target + does have a vector index before emitting the specific error. + * match.cc (copy_ts_from_selector_to_associate): Ensure that + class valued operator expressions set the selector rank and + use the rank to provide the associate variable with an + appropriate array spec. + * resolve.cc (resolve_operator): Reduce stacked parentheses to + a single pair. + (fixup_array_ref): Extract selector symbol from parentheses. + +2023-10-26 Paul-Antoine Arras <pa@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + + * interface.cc (gfc_compare_types): Return true if one type is C_PTR + and the other is a compatible INTEGER(8). + * misc.cc (gfc_typename): Handle the case where an INTEGER(8) actually + holds a TYPE(C_PTR). + +2023-10-25 Thomas Schwinge <thomas@codesourcery.com> + + * openmp.cc (omp_mask2): Split 'OMP_CLAUSE_HOST_SELF' into + 'OMP_CLAUSE_SELF', 'OMP_CLAUSE_HOST'. + (gfc_match_omp_clauses, OACC_UPDATE_CLAUSES): Adjust. + +2023-10-25 Chung-Lin Tang <cltang@codesourcery.com> + + * gfortran.h (typedef struct gfc_omp_clauses): Add self_expr field. + * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_SELF. + (gfc_match_omp_clauses): Add handling for OMP_CLAUSE_SELF. + (OACC_PARALLEL_CLAUSES): Add OMP_CLAUSE_SELF. + (OACC_KERNELS_CLAUSES): Likewise. + (OACC_SERIAL_CLAUSES): Likewise. + (resolve_omp_clauses): Add handling for omp_clauses->self_expr. + * trans-openmp.cc (gfc_trans_omp_clauses): Add handling of + clauses->self_expr and building of OMP_CLAUSE_SELF tree clause. + (gfc_split_omp_clauses): Add handling of self_expr field copy. + +2023-10-25 Thomas Schwinge <thomas@codesourcery.com> + + * dump-parse-tree.cc (show_omp_clauses): Group handling of 'if' + clause without and with modifier. + * frontend-passes.cc (gfc_code_walker): Likewise. + * gfortran.h (gfc_omp_clauses): Likewise. + * openmp.cc (gfc_free_omp_clauses): Likewise. + +2023-10-18 Tobias Burnus <tobias@codesourcery.com> + + * intrinsic.texi (signal): Add 'intrinsic :: signal, sleep' to + the example to make it safer. + +2023-10-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/111837 + * frontend-passes.cc (traverse_io_block): Dependency check of loop + nest shall be triangular, not banded. + +2023-10-17 Tobias Burnus <tobias@codesourcery.com> + + * intrinsic.texi (signal): Mention that the argument + passed to the signal handler procedure is passed by reference. + Extend example. + +2023-10-15 Tobias Burnus <tobias@codesourcery.com> + + * scanner.cc (skip_free_comments, skip_fixed_comments): Remove + leftover 'OpenACC' from comments about OpenMP's conditional + compilation sentinel. + +2023-10-14 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.h (ext_attr_t): Add omp_allocate flag. + * match.cc (gfc_free_omp_namelist): Void deleting same + u2.allocator multiple times now that a sequence can use + the same one. + * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_allocate): Use + same allocator expr multiple times. + (is_predefined_allocator): Make static. + (gfc_resolve_omp_allocate): Update/extend restriction checks; + remove sorry message. + (resolve_omp_clauses): Reject corarrays in allocate/allocators + directive. + * parse.cc (check_omp_allocate_stmt): Permit procedure pointers + here (rejected later) for less misleading diagnostic. + * trans-array.cc (gfc_trans_auto_array_allocation): Propagate + size for GOMP_alloc and location to which it should be added to. + * trans-decl.cc (gfc_trans_deferred_vars): Handle 'omp allocate' + for stack variables; sorry for static variables/common blocks. + * trans-openmp.cc (gfc_trans_omp_clauses): Evaluate 'allocate' + clause's allocator only once; fix adding expressions to the + block. + (gfc_trans_omp_single): Pass a block to gfc_trans_omp_clauses. + +2023-10-13 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104351 + * decl.cc (get_proc_name): Extend name conflict detection between + internal procedure and previous declaration also to derived type. + +2023-10-13 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110957 + * invoke.texi: Update documentation to reflect '-ffpe-trap=none'. + * options.cc (gfc_handle_fpe_option): Fix mixup up of error messages + for options -ffpe-trap and -ffpe-summary. Accept '-ffpe-trap=none' + to clear FPU traps previously set on command line. + +2023-10-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/111779 + * trans-expr.cc (gfc_trans_assignment_1): Initialize + lhs_caf_attr and rhs_caf_attr codimension flag to avoid + false positive -Wuninitialized. + +2023-10-12 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/67740 + * trans-expr.cc (gfc_trans_pointer_assignment): Set the hidden + string length component for pointer assignment to character + pointer components. + +2023-10-08 Tobias Burnus <tobias@codesourcery.com> + + * parse.cc (parse_omp_structured_block): Make the user code end + up inside of BLOCK construct for strictly structured blocks; + fix fallout for 'section' and 'teams'. + * openmp.cc (resolve_omp_target): Fix changed BLOCK handling + for teams in target checking. + +2023-10-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/37336 + PR fortran/111674 + * trans-expr.cc (gfc_trans_scalar_assign): Finalize components + on deallocation if derived type is not finalizable. + +2023-10-03 David Malcolm <dmalcolm@redhat.com> + + * error.cc (gfc_format_decoder): Update for "m_" prefixes to + text_info fields. + +2023-10-02 David Malcolm <dmalcolm@redhat.com> + + * error.cc (gfc_diagnostics_init): Update for change to start_span. + +2023-10-02 David Malcolm <dmalcolm@redhat.com> + + * error.cc (gfc_diagnostic_starter): Update for reorganization of + source-printing fields of diagnostic_context. + (gfc_diagnostics_init): Likewise. + (gfc_diagnostics_finish): Likewise. + +2023-09-29 Andre Vehreschild <vehre@gcc.gnu.org> + + PR fortran/37336 + * trans-array.cc (structure_alloc_comps): Deref coarray. + (gfc_trans_deferred_array): Add freeing of components after + check for allocated coarray. + +2023-09-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/68155 + PR fortran/111271 + * decl.cc (fix_initializer_charlen): New function broken out of + add_init_expr_to_sym. + (add_init_expr_to_sym, build_struct): Call the new function. + * trans-expr.cc (gfc_conv_intrinsic_to_class): Remove repeated + condition. + +2023-09-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/95710 + * class.cc (gfc_build_class_symbol): Do not try to build class + container for invalid typespec. + * resolve.cc (resolve_fl_var_and_proc): Prevent NULL pointer + dereference. + (resolve_symbol): Likewise. + +2023-09-19 Harald Anlauf <anlauf@gmx.de> + + PR fortran/70231 + * trans-array.cc (trans_array_constructor): In absence of a typespec, + use string length determined by get_array_ctor_strlen() to reasonably + initialize auxiliary variable for bounds-checking. + +2023-09-15 Harald Anlauf <anlauf@gmx.de> + + PR fortran/30802 + * trans-array.cc (trans_array_bound_check): Add optional argument + COMPNAME for explicit specification of array component name. + (array_bound_check_elemental): Helper function for generating + bounds-checking code for elemental dimensions. + (gfc_conv_expr_descriptor): Use bounds-checking also for elemental + dimensions, i.e. those not handled by the scalarizer. + +2023-09-15 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/108957 + * gfortran.h (gfc_symbol): Add comment documenting reference counting. + * parse.cc (parse_interface): Remove reference count incrementation. + +2023-09-12 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/110996 + * gfortran.h (gfc_release_symbol): Set return type to bool. + * symbol.cc (gfc_release_symbol): Ditto. Return whether symbol was + freed. + (delete_symbol_from_ns): New, outline code from... + (gfc_restore_last_undo_checkpoint): ... here. Delete new symbols + from two more namespaces. + +2023-09-09 Mikael Morin <mikael@gcc.gnu.org> + + * bbt.cc (delete_treap): Add argument REMOVED, set it to the removed + element from the tree. Change NULL to nullptr. + (gfc_delete_bbt): Return the removed element from the tree. + * gfortran.h (gfc_delete_symtree): Remove prototype. + (gfc_delete_bbt): Set return type to pointer. + * symbol.cc (gfc_delete_symtree): Make static. Get the element to be + freed from the result of gfc_delete_bbt. Remove the preliminary walk to + get it. + +2023-09-01 Harald Anlauf <anlauf@gmx.de> + + PR fortran/31059 + * trans-array.cc (gfc_conv_ss_startstride): For array bounds checking, + consider also array constructors in expressions, and use their shape. + +2023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + * gfortran.texi: Likewise. + +2023-08-30 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/48776 + * gfortran.h (gfc_drop_interface_elements_before): New prototype. + (gfc_current_interface_head): Return a reference to the pointer. + * interface.cc (gfc_current_interface_head): Ditto. + (free_interface_elements_until): New function, generalizing + gfc_free_interface. + (gfc_free_interface): Use free_interface_elements_until. + (gfc_drop_interface_elements_before): New function. + * parse.cc + (current_interface_ptr, previous_interface_head): New static variables. + (current_interface_valid_p, get_current_interface_ptr): New functions. + (decode_statement): Initialize previous_interface_head. + (reject_statement): Restore current interface pointer to point to + previous_interface_head. + +2023-08-26 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/92586 + * trans-expr.cc (gfc_trans_arrayfunc_assign): Supply a missing + dereference for the call to gfc_deallocate_alloc_comp_no_caf. + +2023-08-25 Sandra Loosemore <sandra@codesourcery.com> + + * gfortran.h (struct gfc_namespace): Add omp_structured_block bit. + * openmp.cc: Include omp-api.h. + (resolve_omp_clauses): Consolidate inscan reduction clause conflict + checking here. + (find_nested_loop_in_chain): New. + (find_nested_loop_in_block): New. + (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse properly. + Handle imperfectly-nested loops when looking for nested omp scan. + Refactor to move inscan reduction clause conflict checking to + resolve_omp_clauses. + (gfc_resolve_do_iterator): Handle imperfectly-nested loops. + (struct icode_error_state): New. + (icode_code_error_callback): New. + (icode_expr_error_callback): New. + (diagnose_intervening_code_errors_1): New. + (diagnose_intervening_code_errors): New. + (make_structured_block): New. + (restructure_intervening_code): New. + (is_outer_iteration_variable): Do not assume loops are perfectly + nested. + (check_nested_loop_in_chain): New. + (check_nested_loop_in_block_state): New. + (check_nested_loop_in_block_symbol): New. + (check_nested_loop_in_block): New. + (expr_uses_intervening_var): New. + (is_intervening_var): New. + (expr_is_invariant): Do not assume loops are perfectly nested. + (resolve_omp_do): Handle imperfectly-nested loops. + * trans-stmt.cc (gfc_trans_block_construct): Generate + OMP_STRUCTURED_BLOCK if magic bit is set on block namespace. + +2023-08-25 Harald Anlauf <anlauf@gmx.de> + + PR fortran/35095 + * data.cc (get_array_index): Add bounds-checking code and return error + status. Overindexing will be allowed as an extension for -std=legacy + and generate an error in standard-conforming mode. + (gfc_assign_data_value): Use error status from get_array_index for + graceful error recovery. + +2023-08-25 Uros Bizjak <ubizjak@gmail.com> + + * match.cc (gfc_match_equivalence): Rename TRUE/FALSE to true/false. + * module.cc (check_access): Ditto. + * primary.cc (match_real_constant): Ditto. + * trans-array.cc (gfc_trans_allocate_array_storage): Ditto. + (get_array_ctor_strlen): Ditto. + * trans-common.cc (find_equivalence): Ditto. + (add_equivalences): Ditto. + +2023-08-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/32986 + * resolve.cc (is_non_constant_shape_array): Add forward declaration. + (resolve_common_vars): Diagnose automatic array object in COMMON. + (resolve_symbol): Prevent confusing follow-on error. + +2023-08-22 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.h (enum gfc_omp_defaultmap_category): + Add OMP_DEFAULTMAP_CAT_ALL. + * openmp.cc (gfc_match_omp_clauses): Parse + 'all' as category. + * trans-openmp.cc (gfc_trans_omp_clauses): Handle it. + +2023-08-22 Harald Anlauf <anlauf@gmx.de> + + PR fortran/49588 + * data.cc (gfc_advance_section): Derive next index set and next offset + into DATA variable also for array references using vector sections. + Use auxiliary array to keep track of offsets into indexing vectors. + (gfc_get_section_index): Set up initial indices also for DATA variables + with array references using vector sections. + * data.h (gfc_get_section_index): Adjust prototype. + (gfc_advance_section): Likewise. + * resolve.cc (check_data_variable): Pass vector offsets. + +2023-08-16 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110360 + * trans-expr.cc (conv_scalar_char_value): Use gfc_replace_expr to + avoid leaking replaced gfc_expr. + +2023-08-15 Martin Jambor <mjambor@suse.cz> + Harald Anlauf <anlauf@gmx.de> + + PR fortran/110677 + * resolve.cc (resolve_structure_cons): Check comp->ts is character + type before accessing stuff through comp->ts.u.cl. + +2023-08-15 Chung-Lin Tang <cltang@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + * openmp.cc (OACC_DATA_CLAUSES): Add OMP_CLAUSE_DEFAULT. + +2023-08-14 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/110360 + PR fortran/110419 + * trans-types.cc (gfc_sym_type): Use a bare character type for length + one value character dummy arguments. + * trans-expr.cc (gfc_conv_string_parameter): Handle single character + case. + (gfc_conv_procedure_call): Don't exclude interoperable kinds + from single character handling. For single character dummy arguments, + extend the existing handling of non-constant expressions to constant + expressions. + +2023-08-14 Mikael Morin <mikael@gcc.gnu.org> + + * gfortran.h (gfc_length_one_character_type_p): New inline + function. + * check.cc (is_c_interoperable): Use + gfc_length_one_character_type_p. + * decl.cc (verify_bind_c_sym): Same. + * trans-expr.cc (gfc_conv_procedure_call): Same. + +2023-08-09 Steve Kargl <sgk@troutmask.apl.washington.edu> + + PR fortran/109684 + * resolve.cc (resolve_types): Exclude contained procedures with + the artificial attribute from test for pureness. + +2023-07-31 Chung-Lin Tang <cltang@codesourcery.com> + + * openmp.cc (resolve_omp_clauses): Add checking requiring + OpenACC host_data construct to have an use_device clause. + +2023-07-28 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110825 + * gfortran.texi: Clarify argument passing convention. + * trans-expr.cc (gfc_conv_procedure_call): Do not pass the character + length as hidden argument when the declared dummy argument is + assumed-type. + +2023-07-27 Tobias Burnus <tobias@codesourcery.com> + + * openmp.cc (resolve_omp_target): Minor cleanup. + * parse.cc (decode_omp_directive): Find TARGET statement + also higher in the stack. + +2023-07-26 Harald Anlauf <anlauf@gmx.de> + + PR fortran/68569 + * resolve.cc (check_data_variable): Do not accept strings with + deferred length or non-constant length in a DATA statement. + Reject also substrings of string variables of non-constant length. + +2023-07-25 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/110725 + PR middle-end/71065 + * gfortran.h (gfc_omp_clauses): Add target_first_st_is_teams. + * parse.cc (parse_omp_structured_block): Set it if the first + statement in the structured block of a TARGET is TEAMS or + a combined/composite starting with TEAMS. + * openmp.cc (resolve_omp_target): Also show an error for + contains_teams_construct without target_first_st_is_teams. + +2023-07-24 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/110725 + PR middle-end/71065 + * gfortran.h (gfc_omp_clauses): Add contains_teams_construct. + * openmp.cc (resolve_omp_target): New; check for teams nesting. + (gfc_resolve_omp_directive): Call it. + * parse.cc (decode_omp_directive): Set contains_teams_construct + on enclosing ST_OMP_TARGET. + +2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): Only + define it once. + +2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + * f95-lang.cc (gfc_init_builtin_functions): Add __builtin_iseqsig. + * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): New + function. + (gfc_conv_ieee_arithmetic_function): Handle IEEE comparisons. + +2023-07-19 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/107424 + * trans-openmp.cc (gfc_nonrect_loop_expr): Accept all + constant loop steps. + (gfc_trans_omp_do): Likewise; use sign to determine + loop direction. + +2023-07-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/95947 + PR fortran/110658 + * trans-expr.cc (gfc_conv_procedure_call): For intrinsic procedures + whose result characteristics depends on the first argument and which + can be of type character, the character length will not be deferred. + +2023-07-17 Tobias Burnus <tobias@codesoucery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Dump + uses_allocators clause. + * gfortran.h (gfc_free_omp_namelist): Add memspace_sym to u union + and traits_sym to u2 union. + (OMP_LIST_USES_ALLOCATORS): New enum value. + (gfc_free_omp_namelist): Add 'bool free_mem_traits_space' arg. + * match.cc (gfc_free_omp_namelist): Likewise. + * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_variable_list, + gfc_match_omp_to_link, gfc_match_omp_doacross_sink, + gfc_match_omp_clause_reduction, gfc_match_omp_allocate, + gfc_match_omp_flush): Update call. + (gfc_match_omp_clauses): Likewise. Parse uses_allocators clause. + (gfc_match_omp_clause_uses_allocators): New. + (enum omp_mask2): Add new OMP_CLAUSE_USES_ALLOCATORS. + (OMP_TARGET_CLAUSES): Accept it. + (resolve_omp_clauses): Resolve uses_allocators clause + * st.cc (gfc_free_statement): Update gfc_free_omp_namelist call. + * trans-openmp.cc (gfc_trans_omp_clauses): Handle + OMP_LIST_USES_ALLOCATORS; fail with sorry unless predefined allocator. + (gfc_split_omp_clauses): Handle uses_allocators. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/110618 + * trans.h (gfc_deallocate_with_status): Add class container + argument. + (gfc_deallocate_scalar_with_status): Ditto. + * trans.cc (gfc_deallocate_with_status): Add class container + argument and pass it down to gfc_add_finalize_call. + (gfc_deallocate_scalar_with_status): Same. + * trans-array.cc (structure_alloc_comps): Update caller. + * trans-stmt.cc (gfc_trans_deallocate): Ditto. + * trans-expr.cc (gfc_conv_procedure_call): Ditto. Pass + pre-evaluated class container argument if it's available. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/110618 + * trans.h (gfc_add_finalizer_call): Add class container argument. + * trans.cc (gfc_add_finalizer_call): Ditto. Pass down new + argument to get_final_proc_ref, get_elem_size, get_var_desc, + and get_vptr. + (get_elem_size): Add class container argument. + Use provided class container if it's available. + (get_var_descr): Same. + (get_vptr): Same. + (get_final_proc_ref): Same. Add boolean telling the class + container argument is used. Set it. Don't try to use + final_wrapper if class container argument was used. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_var_descr): Factor scalar descriptor generation. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_vptr): New function. + (gfc_add_finalizer_call): Move virtual table pointer evaluation + to get_vptr. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_var_descr): Remove argument ts. Use var->ts + instead. + (gfc_add_finalizer_call): Update caller. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_add_finalizer_call): Inline definition of + variable has_finalizer. Merge nested conditions. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_add_finalizer_call): Remove local variable + final_expr. Pass down expr to get_final_proc_ref and move + final procedure expression generation down to its one usage + in get_final_proc_ref. + (get_final_proc_ref): Add argument expr. Remove argument + final_wrapper. Recreate final_wrapper from expr. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_add_finalizer_call): Remove local variable + elem_size. Pass expression to get_elem_size and move the + element size expression generation close to its usage there. + (get_elem_size): Add argument expr, remove class_size argument + and rebuild it from expr. Remove ts argument and use the + type of expr instead. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_add_finalizer_call): Move pre and post code for + the final procedure pointer expression to the outer block. + Reuse the previously evaluated final procedure pointer + expression. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_add_finalizer_call): Add post code for desc_se + after the finalizer call. Add post code for final_se and + size_se as well. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_build_final_call): Inline... + (gfc_add_finalizer_call): ... to its one caller. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_var_descr): New function. + (gfc_build_final_call): Outline the data reference descriptor + evaluation code to get_var_descr. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_elem_size): New function. + (gfc_build_final_call): Outline the element size evaluation + to get_elem_size. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (get_final_proc_ref): New function. + (gfc_build_final_call): Outline the pointer evaluation code + to get_final_proc_ref. + +2023-07-17 Mikael Morin <mikael@gcc.gnu.org> + + * trans.cc (gfc_build_final_call): Remove commented assertion. + +2023-07-14 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/92178 + * trans.h (gfc_reset_vptr): Add class_container argument. + * trans-expr.cc (gfc_reset_vptr): Ditto. If a valid vptr can + be obtained through class_container argument, bypass evaluation + of e. + (gfc_conv_procedure_call): Wrap the argument evaluation code + in a conditional if the associated dummy is optional. Evaluate + the data reference to a pointer now, and replace later + references with usage of the pointer. + +2023-07-14 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/92178 + * trans.h (struct gfc_se): New field class_container. + (struct gfc_ss_info): Ditto. + (gfc_evaluate_data_ref_now): New prototype. + * trans.cc (gfc_evaluate_data_ref_now): Implement it. + * trans-array.cc (gfc_conv_ss_descriptor): Copy class_container + field from gfc_se struct to gfc_ss_info struct. + (gfc_conv_expr_descriptor): Copy class_container field from + gfc_ss_info struct to gfc_se struct. + * trans-expr.cc (gfc_conv_class_to_class): Use class container + set in class_container field if available. + (gfc_conv_variable): Set class_container field on encountering + class variables or components, clear it on encountering + non-class components. + (gfc_conv_procedure_call): Evaluate data ref to a pointer now, + and replace later references by usage of the pointer. + +2023-07-14 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/92178 + * trans-expr.cc (gfc_conv_procedure_call): Use a separate gfc_se + struct, initalized from parmse, to generate the class wrapper. + After the class wrapper code has been generated, copy it back + depending on whether parameter deallocation code has been + generated. + +2023-07-13 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/106050 + * symbol.cc (gfc_restore_last_undo_checkpoint): Release symbols + in reverse order. + +2023-07-12 Andre Vehreschild <vehre@gcc.gnu.org> + + PR fortran/102003 + * expr.cc (find_inquiry_ref): Replace len of pdt_string by + constant. + (simplify_ref_chain): Ensure input to find_inquiry_ref is + NULL. + (gfc_match_init_expr): Prevent PDT analysis for function calls. + (gfc_pdt_find_component_copy_initializer): Get the initializer + value for given component. + * gfortran.h (gfc_pdt_find_component_copy_initializer): New + function. + * simplify.cc (gfc_simplify_len): Replace len() of PDT with pdt + component ref or constant. + +2023-07-11 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110288 + * symbol.cc (gfc_copy_formal_args_intr): When deriving the formal + argument attributes from the actual ones for intrinsic procedure + calls, take special care of CHARACTER arguments that we do not + wrongly treat them formally as deferred-length. + +2023-07-08 Steve Kargl <sgk@troutmask.apl.washington.edu> + + PR fortran/99139 + PR fortran/99368 + * match.cc (gfc_match_namelist): Check for host associated or + defined types before applying default type. + (gfc_match_select_rank): Apply default type to selector of + unknown type if possible. + * resolve.cc (resolve_fl_variable): Do not apply local default + initialization to assumed rank entities. + +2023-07-08 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/92178 + * trans-expr.cc (gfc_conv_procedure_call): Check procedures for + allocatable dummy arguments with INTENT(OUT) and move deallocation + of actual arguments after evaluation of argument expressions before + the procedure is executed. + +2023-07-08 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110585 + * arith.cc (gfc_compare_expr): Handle equality comparison of constant + complex gfc_expr arguments. + +2023-07-05 Robin Dapp <rdapp@ventanamicro.com> + Juzhe-Zhong <juzhe.zhong@rivai.ai> + + * trans-types.cc (gfc_type_for_mode): Ditto. + +2023-06-28 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110360 + * trans-expr.cc (gfc_conv_procedure_call): For non-constant string + argument passed to CHARACTER(LEN=1),VALUE dummy, ensure proper + dereferencing and truncation of string to length 1. + +2023-06-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/49213 + * expr.cc (gfc_is_ptr_fcn): Remove reference to class_pointer. + * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow + associate names with pointer function targets to be used in + variable definition context. + * trans-decl.cc (get_symbol_decl): Remove extraneous line. + * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Obtain + size of intrinsic and character expressions. + (gfc_trans_subcomponent_assign): Expand assignment to class + components to include intrinsic and character expressions. + +2023-06-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110360 + * trans-expr.cc (gfc_conv_procedure_call): Truncate constant string + argument of length > 1 passed to scalar CHARACTER(1),VALUE dummy. + +2023-06-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/110360 + * trans-expr.cc (gfc_conv_procedure_call): Pass actual argument + to scalar CHARACTER(1),VALUE dummy argument by value. + +2023-06-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/87477 + PR fortran/88688 + PR fortran/94380 + PR fortran/107900 + PR fortran/110224 + * decl.cc (char_len_param_value): Fix memory leak. + (resolve_block_construct): Remove unnecessary static decls. + * expr.cc (gfc_is_ptr_fcn): New function. + (gfc_check_vardef_context): Use it to permit pointer function + result selectors to be used for associate names in variable + definition context. + * gfortran.h: Prototype for gfc_is_ptr_fcn. + * match.cc (build_associate_name): New function. + (gfc_match_select_type): Use the new function to replace inline + version and to build a new associate name for the case where + the supplied associate name is already used for that purpose. + * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow + associate names with pointer function targets to be used in + variable definition context. + * trans-decl.cc (gfc_get_symbol_decl): Unlimited polymorphic + variables need deferred initialisation of the vptr. + (gfc_trans_deferred_vars): Do the vptr initialisation. + * trans-stmt.cc (trans_associate_var): Ensure that a pointer + associate name points to the target of the selector and not + the selector itself. + +2023-06-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/108961 + * trans-expr.cc (gfc_conv_procedure_call): The hidden string + length must not be passed to a formal arg of type(cptr). + +2023-06-20 Tobias Burnus <tobias@codesourcery.com> + + * dump-parse-tree.cc (show_omp_namelist): Fix dump of the allocator + modifier of OMP_LIST_ALLOCATE. + +2023-06-20 Tobias Burnus <tobias@codesourcery.com> + + * match.cc (gfc_match_char): Match with '%S' a symbol + with host_assoc = 1. + +2023-06-19 Tobias Burnus <tobias@codesourcery.com> + + * intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Also + add references to the OpenMP 5.1 and 5.2 spec; add omp_initial_device + and omp_invalid_device named constants. + +2023-06-13 Harald Anlauf <anlauf@gmx.de> + Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/86277 + * trans-array.cc (gfc_trans_allocate_array_storage): When passing a + zero-sized array with fixed (= non-dynamic) size, allocate temporary + by the caller, not by the callee. + +2023-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + * f95-lang.cc (gfc_init_builtin_functions): Add fmax() and + fmin() built-ins, and their variants. + * mathbuiltins.def: Add FMAX and FMIN built-ins. + * trans-intrinsic.cc (conv_intrinsic_ieee_minmax): New function. + (gfc_conv_ieee_arithmetic_function): Handle IEEE_MIN_NUM and + IEEE_MAX_NUM functions. + +2023-06-09 Jakub Jelinek <jakub@redhat.com> + + PR fortran/96024 + * primary.cc (gfc_convert_to_structure_constructor): Only do + constant string ctor length verification and truncation/padding + if constant length has INTEGER type. + +2023-06-08 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/87477 + PR fortran/99350 + PR fortran/107821 + PR fortran/109451 + * decl.cc (char_len_param_value): Simplify a copy of the expr + and replace the original if there is no error. + * gfortran.h : Remove the redundant field 'rankguessed' from + 'gfc_association_list'. + * resolve.cc (resolve_assoc_var): Remove refs to 'rankguessed'. + (resolve_variable): Associate names with constant or structure + constructor targets cannot have array refs. + * trans-array.cc (gfc_conv_expr_descriptor): Guard expression + character length backend decl before using it. Suppress the + assignment if lhs equals rhs. + * trans-io.cc (gfc_trans_transfer): Scalarize transfer of + associate variables pointing to a variable. Add comment. + * trans-stmt.cc (trans_associate_var): Remove requirement that + the character length be deferred before assigning the value + returned by gfc_conv_expr_descriptor. Also, guard the backend + decl before testing with VAR_P. + +2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + + * dump-parse-tree.cc (show_omp_namelist): Display 'present' map + modifier. + (show_omp_clauses): Display 'present' motion modifier for 'to' + and 'from' clauses. + * gfortran.h (enum gfc_omp_map_op): Add entries with 'present' + modifiers. + (struct gfc_omp_namelist): Add 'present_modifer'. + * openmp.cc (gfc_match_motion_var_list): New, handles optional + 'present' modifier for to/from clauses. + (gfc_match_omp_clauses): Call it for to/from clauses; parse 'present' + in defaultmap and map clauses. + (resolve_omp_clauses): Allow 'present' modifiers on 'target', + 'target data', 'target enter' and 'target exit' directives. + * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers + to tree node for 'map', 'to' and 'from' clauses. Apply 'present' for + defaultmap. + +2023-06-02 Steve Kargl <kargl@gcc.gnu.org> + + PR fortran/100607 + * resolve.cc (resolve_select_rank): Remove duplicate error. + (resolve_fl_var_and_proc): Prevent NULL pointer dereference and + suppress error message for temporary. + +2023-06-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/87477 + * parse.cc (parse_associate): Replace the existing evaluation + of the target rank with calls to gfc_resolve_ref and + gfc_expression_rank. Identify untyped target function results + with structure constructors by finding the appropriate derived + type. + * resolve.cc (resolve_symbol): Allow associate variables to be + assumed shape. + +2023-06-01 Harald Anlauf <anlauf@gmx.de> + + PR fortran/88552 + * decl.cc (gfc_match_kind_spec): Use error path on missing right + parenthesis. + (gfc_match_decl_type_spec): Use error return when an error occurred + during matching a KIND specifier. + +2023-06-01 Tobias Burnus <tobias@codesourcery.com> + + * parse.cc (decode_omp_directive): Accept all pure directives + inside a PURE procedures; handle 'error at(execution). + +2023-05-26 Tobias Burnus <tobias@codesourcery.com> + + * dump-parse-tree.cc (show_omp_namelist): Update allocator, fix + align dump. + (show_omp_node, show_code_node): Handle EXEC_OMP_ALLOCATE. + * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE and ..._EXEC. + (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE. + (struct gfc_omp_namelist): Add 'allocator' to 'u2' union. + (struct gfc_namespace): Add omp_allocate. + (gfc_resolve_omp_allocate): New. + * match.cc (gfc_free_omp_namelist): Free 'u2.allocator'. + * match.h (gfc_match_omp_allocate, gfc_match_omp_allocators): New. + * openmp.cc (gfc_omp_directives): Uncomment allocate/allocators. + (gfc_match_omp_variable_list): Add bool arg for + rejecting listening common-block vars separately. + (gfc_match_omp_clauses): Update for u2.allocators. + (OMP_ALLOCATORS_CLAUSES, gfc_match_omp_allocate, + gfc_match_omp_allocators, is_predefined_allocator, + gfc_resolve_omp_allocate): New. + (resolve_omp_clauses): Update 'allocate' clause checks. + (omp_code_to_statement, gfc_resolve_omp_directive): Handle + OMP ALLOCATE/ALLOCATORS. + * parse.cc (in_exec_part): New global var. + (check_omp_allocate_stmt, parse_openmp_allocate_block): New. + (decode_omp_directive, case_exec_markers, case_omp_decl, + gfc_ascii_statement, parse_omp_structured_block): Handle + OMP allocate/allocators. + (verify_st_order, parse_executable): Set in_exec_part. + * resolve.cc (gfc_resolve_blocks, resolve_codes): Handle + allocate/allocators. + * st.cc (gfc_free_statement): Likewise. + * trans.cc (trans_code): Likewise. + * trans-openmp.cc (gfc_trans_omp_directive): Likewise. + (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for + u2.allocator, fix for u.align. + +2023-05-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104350 + * simplify.cc (simplify_size): Reject DIM argument of intrinsic SIZE + with error when out of valid range. + +2023-05-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/103794 + * check.cc (gfc_check_reshape): Expand constant arguments SHAPE and + ORDER before checking. + * gfortran.h (gfc_is_constant_array_expr): Add prototype. + * iresolve.cc (gfc_resolve_reshape): Expand constant argument SHAPE. + * simplify.cc (is_constant_array_expr): If array is determined to be + constant, expand small array constructors if needed. + (gfc_is_constant_array_expr): Wrapper for is_constant_array_expr. + (gfc_simplify_reshape): Fix check for insufficient elements in SOURCE + when no padding specified. + +2023-05-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/103716 + * resolve.cc (gfc_resolve_ref): Conversion of array_ref into an + element should be done for all characters without a len expr, + not just deferred lens, and for integer expressions. + * trans-expr.cc (conv_inquiry): For len and kind inquiry refs, + set the se string_length to NULL_TREE. + +2023-05-23 Paul Thomas <pault@gcc.gnu.org> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/97122 + * decl.cc (variable_decl): Clean up white space issues. + (gfc_match_final_decl): Declaration of finalizable derived type + is allowed in a submodule. + +2023-05-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * expr.cc (gfc_get_corank): Use CLASS_DATA from gfortran.h. + * resolve.cc (resolve_component): Same. + (resolve_fl_derived0): Same. + * simplify.cc (gfc_simplify_extends_type_of): Same. + (simplify_cobound): Same. + +2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * trans-array.cc (is_pointer_array): Use _P() defines from tree.h. + (gfc_conv_scalarized_array_ref): Ditto. + (gfc_conv_array_ref): Ditto. + * trans-decl.cc (gfc_finish_decl): Ditto. + (gfc_get_symbol_decl): Ditto. + * trans-expr.cc (gfc_trans_pointer_assignment): Ditto. + (gfc_trans_arrayfunc_assign): Ditto. + (gfc_trans_assignment_1): Ditto. + * trans-intrinsic.cc (gfc_conv_intrinsic_minmax): Ditto. + (conv_intrinsic_ieee_value): Ditto. + * trans-io.cc (gfc_convert_array_to_string): Ditto. + * trans-openmp.cc (gfc_omp_is_optional_argument): Ditto. + (gfc_trans_omp_clauses): Ditto. + * trans-stmt.cc (gfc_conv_label_variable): Ditto. + * trans.cc (gfc_build_addr_expr): Ditto. + (get_array_span): Ditto. + +2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + PR fortran/78798 + * array.cc (compare_bounds): Use narrower return type. + (gfc_compare_array_spec): Likewise. + (is_constant_element): Likewise. + (gfc_constant_ac): Likewise. + * check.cc (dim_rank_check): Likewise. + * cpp.cc (gfc_cpp_init_options): Likewise. + (dump_macro): Likewise. + * cpp.h (gfc_cpp_handle_option): Likewise. + * dependency.cc (gfc_ref_needs_temporary_p): Likewise. + (gfc_check_argument_dependency): Likewise. + (gfc_check_fncall_dependency): Likewise. + (ref_same_as_full_array): Likewise. + * dependency.h (gfc_check_fncall_dependency): Likewise. + (gfc_dep_resolver): Likewise. + (gfc_are_equivalenced_arrays): Likewise. + * expr.cc (gfc_copy_ref): Likewise. + (gfc_kind_max): Likewise. + (numeric_type): Likewise. + * gfortran.h (gfc_at_end): Likewise. + (gfc_at_eof): Likewise. + (gfc_at_bol): Likewise. + (gfc_at_eol): Likewise. + (gfc_define_undef_line): Likewise. + (gfc_wide_is_printable): Likewise. + (gfc_wide_is_digit): Likewise. + (gfc_wide_fits_in_byte): Likewise. + (gfc_find_sym_tree): Likewise. + (gfc_generic_intrinsic): Likewise. + (gfc_specific_intrinsic): Likewise. + (gfc_intrinsic_actual_ok): Likewise. + (gfc_has_vector_index): Likewise. + (gfc_numeric_ts): Likewise. + (gfc_impure_variable): Likewise. + (gfc_pure): Likewise. + (gfc_implicit_pure): Likewise. + (gfc_elemental): Likewise. + (gfc_pure_function): Likewise. + (gfc_implicit_pure_function): Likewise. + (gfc_compare_array_spec): Likewise. + (gfc_constant_ac): Likewise. + (gfc_expanded_ac): Likewise. + (gfc_check_digit): Likewise. + * intrinsic.cc (gfc_find_subroutine): Likewise. + (gfc_generic_intrinsic): Likewise. + (gfc_specific_intrinsic): Likewise. + * io.cc (compare_to_allowed_values): Likewise. And remove + unneeded forward declaration. + * parse.cc: Likewise. + * parse.h (gfc_check_do_variable): Likewise. + * primary.cc (gfc_check_digit): Likewise. + * resolve.cc (resolve_structure_cons): Likewise. + (pure_stmt_function): Likewise. + (gfc_pure_function): Likewise. + (impure_stmt_fcn): Likewise. + (resolve_forall_iterators): Likewise. + (resolve_data): Likewise. + (gfc_impure_variable): Likewise. + (gfc_pure): Likewise. + (gfc_unset_implicit_pure): Likewise. + * scanner.cc (wide_is_ascii): Likewise. + (gfc_wide_toupper): Likewise. + (gfc_open_included_file): Likewise. + (gfc_at_end): Likewise. + (gfc_at_eof): Likewise. + (gfc_at_bol): Likewise. + (skip_comment_line): Likewise. + (gfc_gobble_whitespace): Likewise. + * symbol.cc (gfc_find_symtree_in_proc): Likewise. + * trans-array.cc: Likewise. + * trans-decl.cc (gfc_set_decl_assembler_name): Likewise. + * trans-types.cc (gfc_get_element_type): Likewise. + (gfc_add_field_to_struct): Likewise. + * trans-types.h (gfc_copy_dt_decls_ifequal): Likewise. + (gfc_return_by_reference): Likewise. + (gfc_is_nodesc_array): Likewise. + * trans.h (gfc_can_put_var_on_stack): Likewise. + +2023-05-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/95374 + PR fortran/104352 + * decl.cc (add_init_expr_to_sym): Set shape of initializer also for + zero-sized arrays, so that bounds violations can be detected later. + +2023-05-17 Tobias Burnus <tobias@codesourcery.com> + + * trans-decl.cc (gfc_get_symbol_decl): Add attributes + such as 'declare target' also to hidden artificial + variable for deferred-length character variables. + * trans-openmp.cc (gfc_trans_omp_array_section, + gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data): + Improve mapping of array descriptors and deferred-length + string variables. + +2023-05-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/105152 + PR fortran/100193 + PR fortran/87496 + PR fortran/103389 + PR fortran/104429 + PR fortran/82774 + * interface.cc (gfc_compare_actual_formal): Emit an error if an + unlimited polymorphic actual is not matched either to an + unlimited or assumed type formal argument. + * resolve.cc (resolve_ordinary_assign): Emit an error if the + var expression of an ordinary assignment is a proc pointer + component. + * trans-array.cc (gfc_walk_array_ref): Provide assumed shape + arrays coming from interface mapping with a viable arrayspec. + * trans-expr.cc (gfc_conv_intrinsic_to_class): Tidy up flagging + of unlimited polymorphic 'class_ts'. + (gfc_conv_gfc_desc_to_cfi_desc): Assumed type is unlimited + polymorphic and should accept any actual type. + (gfc_conv_procedure_call): Replace dreadful kludge with a call + to gfc_finalize_tree_expr. Avoid dereferencing a void pointer + by giving it the pointer type of the actual argument. + (alloc_scalar_allocatable_subcomponent): Shorten the function + name and replace the symbol argument with the se string length. + If a deferred length character length is either not present or + is not a variable, give the typespec a variable and assign the + string length to that. Use gfc_deferred_strlen to find the + hidden string length component. + (gfc_trans_subcomponent_assign): Convert the expression before + the call to alloc_scalar_allocatable_subcomponent so that a + good string length is provided. + (gfc_trans_structure_assign): Remove the unneeded derived type + symbol from calls to gfc_trans_subcomponent_assign. + +2023-05-15 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109846 + * expr.cc (gfc_check_vardef_context): Check appropriate pointer + attribute for CLASS vs. non-CLASS function result in variable + definition context. + +2023-05-11 Xi Ruoyao <xry111@xry111.site> + + * Make-lang.in: Use grep instead of fgrep. + +2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * dump-parse-tree.cc (gfc_debug_expr): Remove forward declaration. + (debug): Add DEBUG_FUNCTION. + (show_code_node): Remove erroneous whitespace. + +2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + PR fortran/109624 + * dump-parse-tree.cc (debug): New function for gfc_namespace. + (gfc_debug_code): Delete forward declaration. + (show_attr): Make sure to print balanced braces. + +2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * resolve.cc (resolve_select_type): Fix coding style. + +2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * resolve.cc (resolve_select_type): Call free() unconditionally. + +2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + PR fortran/68800 + * expr.cc (find_array_section): Fix mpz memory leak. + * simplify.cc (gfc_simplify_reshape): Fix mpz memory leaks in + error paths. + +2023-05-05 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109641 + * arith.cc (eval_intrinsic): Check conformability of ranks of operands + for intrinsic binary operators before performing type conversions. + * gfortran.h (gfc_op_rank_conformable): Add prototype. + * resolve.cc (resolve_operator): Check conformability of ranks of + operands for intrinsic binary operators before performing type + conversions. + (gfc_op_rank_conformable): New helper function to compare ranks of + operands of binary operator. + +2023-05-04 Julian Brown <julian@codesourcery.com> + + PR fortran/109622 + * openmp.cc (resolve_omp_clauses): Add diagnostic for + non-pointer/non-allocatable attach/detach. + * trans-openmp.cc (gfc_trans_omp_clauses): Remove dereference for + pointer-to-scalar derived type component attach/detach. Fix + attach/detach handling for descriptors. + +2023-04-28 Julian Brown <julian@codesourcery.com> + + PR fortran/109622 + * trans-openmp.cc (gfc_trans_omp_clauses): Attach/detach clause fixes. + +2023-04-28 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.texi: Fix typos. + * decl.cc: Fix typos in comments and in a variable name. + * arith.cc: Fix comment typos. + * check.cc: Likewise. + * class.cc: Likewise. + * dependency.cc: Likewise. + * expr.cc: Likewise. + * frontend-passes.cc: Likewise. + * gfortran.h: Likewise. + * intrinsic.cc: Likewise. + * iresolve.cc: Likewise. + * match.cc: Likewise. + * module.cc: Likewise. + * primary.cc: Likewise. + * resolve.cc: Likewise. + * simplify.cc: Likewise. + * trans-array.cc: Likewise. + * trans-decl.cc: Likewise. + * trans-expr.cc: Likewise. + * trans-intrinsic.cc: Likewise. + * trans-openmp.cc: Likewise. + * trans-stmt.cc: Likewise. + +2023-04-25 Tobias Burnus <tobias@codesourcery.com> + + * openmp.cc (gfc_resolve_omp_do_blocks): Handle zero + or more than one exec statements before/after 'omp scan'. + * trans-openmp.cc (gfc_trans_omp_do): Likewise. + +2023-04-22 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/109500 + * interface.cc (gfc_compare_actual_formal): Reject allocatable + functions being used as actual argument for allocable dummy. + +2023-04-14 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109511 + * simplify.cc (gfc_simplify_set_exponent): Fix implementation of + compile-time simplification of intrinsic SET_EXPONENT for argument + X < 1 and for I < 0. + +2023-04-14 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/104272 + * gfortran.h : Add expr3_not_explicit bit field to gfc_code. + * resolve.cc (resolve_allocate_expr): Set bit field when the + default initializer is applied to expr3. + * trans-stmt.cc (gfc_trans_allocate): If expr3_not_explicit is + set, do not deallocate expr3. + +2023-04-13 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109492 + * trans-expr.cc (gfc_conv_power_op): Use absu_hwi and + unsigned HOST_WIDE_INT for portability. + +2023-04-12 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104312 + * resolve.cc (resolve_entries): Handle functions with ENTRY and + ALLOCATABLE results. + * trans-expr.cc (gfc_conv_procedure_call): Functions with a result + with the POINTER or ALLOCATABLE attribute shall not get any special + treatment with -ff2c, as they cannot be written in Fortran 77. + * trans-types.cc (gfc_return_by_reference): Likewise. + (gfc_get_function_type): Likewise. + +2023-04-12 Harald Anlauf <anlauf@gmx.de> + + PR fortran/61615 + PR fortran/99982 + * interface.cc (compare_parameter): Enable type and rank checks for + arguments of derived type from the intrinsic module ISO_C_BINDING. + +2023-04-08 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/87477 + * iresolve.cc (gfc_resolve_adjustl, gfc_resolve_adjustr): if + string length is deferred use the string typespec for result. + * resolve.cc (resolve_assoc_var): Handle parentheses around the + target expression. + (resolve_block_construct): Remove unnecessary static decls. + * trans-array.cc (gfc_conv_expr_descriptor): Guard string len + expression in condition. Improve handling of string length and + span, especially for substrings of the descriptor. + (duplicate_allocatable): Make element type more explicit with + 'eltype'. + * trans-decl.cc (gfc_get_symbol_decl): Emit a fatal error with + appropriate message instead of ICE if symbol type is unknown. + (gfc_generate_function_code): Set current locus to proc_sym + declared_at. + * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in + 'previous' and use if end expression in substring reference is + null. + (gfc_conv_string_length): Use gfc_conv_expr_descriptor if + 'expr_flat' is an array. Add post block to catch deallocation + of temporaries. + (gfc_conv_procedure_call): Assign the parmse string length to + the expression string length, if it is deferred. + (gfc_trans_alloc_subarray_assign): If this is a deferred string + length component, store the string length in the hidden comp. + Update the typespec length accordingly. Generate a new type + spec for the call to gfc_duplicate-allocatable in this case. + * trans-io.cc (gfc_trans_transfer): Scalarize transfer of + deferred character array components. + +2023-04-04 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104349 + * expr.cc (check_restricted): Adjust check for valid variables in + restricted expressions: make no exception for module variables. + +2023-04-01 Thomas Koenig <tkoenig@gcc.gnu.org> + + * dump-parse-tree.cc (get_c_type_name): Fix "long_long" + type name to be "long long". + +2023-03-30 Andrew Pinski <apinski@marvell.com> + + * dump-parse-tree.cc (get_c_type_name): Fix "long_long" + type name to be "long long". Add a comment on why adding + 2 to the name too. + +2023-03-28 Jakub Jelinek <jakub@redhat.com> + + PR fortran/109314 + * openmp.cc (gfc_omp_absent_contains_clause): Fix typo in diagnostics + - composit -> composite. + +2023-03-25 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104321 + * trans-decl.cc (gfc_conv_cfi_to_gfc): Remove dead code. + +2023-03-24 Harald Anlauf <anlauf@gmx.de> + + * expr.cc (free_expr0): Free also BOZ strings as part of an expression. + +2023-03-24 Haochen Gui <guihaoc@gcc.gnu.org> + Tobias Burnus <tobias@codesourcery.com> + + PR target/103628 + * target-memory.cc (gfc_interpret_float): Return FAIL when + native_interpret_expr gets a NULL tree. + * arith.cc (gfc_hollerith2real): Return NULL when + gfc_interpret_float fails. + * error.cc (gfc_buffered_p): Define. + * gfortran.h (gfc_buffered_p): Declare. + * intrinsic.cc: Add diagnostic.h to include list. + (do_simplify): Save errorcount and check it at finish. Report a + "Cannot simplify expression" error on a bad result if error count + doesn't change and no other errors buffered. + +2023-03-22 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/104572 + * resolve.cc (gfc_resolve_finalizers): Argument of a FINAL subroutine + cannot be an alternate return. + +2023-03-21 Harald Anlauf <anlauf@gmx.de> + + PR fortran/99036 + * decl.cc (gfc_match_modproc): Reject MODULE PROCEDURE if not in a + generic module interface. + +2023-03-21 Arsen Arsenović <arsen@aarsen.me> + + * invoke.texi: Remove usages of @gol. + * intrinsic.texi: Ditto. + +2023-03-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/109206 + * trans-array.cc (gfc_trans_array_constructor_value): Correct + incorrect setting of typespec. + +2023-03-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/109209 + * resolve.cc (generate_component_assignments): Restore the + exclusion of allocatable components from the loop. + +2023-03-20 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109216 + * invoke.texi: Correct documentation of how underscores are appended + to external names. + +2023-03-20 Harald Anlauf <anlauf@gmx.de> + + PR fortran/109186 + * simplify.cc (gfc_simplify_nearest): Fix off-by-one error in setting + up real kind-specific maximum exponent for mpfr. + +2023-03-20 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/87127 + * resolve.cc (check_host_association): If an external function + is typed but not declared explicitly to be external, change the + old symbol from a variable to an external function. + +2023-03-19 Harald Anlauf <anlauf@gmx.de> + + PR fortran/85877 + * resolve.cc (resolve_fl_procedure): Check for an explicit interface + of procedures with the BIND(C) attribute (F2018:15.4.2.2). + +2023-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> + + * gfortran.texi: Mention behavior on overflow. + +2023-03-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/103854 + PR fortran/96122 + PR fortran/37336 + * class.cc (finalize_component): Include the missing arguments + in the call to the component's finalizer wrapper. + (has_finalizer_component): Do not return true for procedure + pointer components. + (finalizer_insert_packed_call): Remove the redundant argument + in the call to the final subroutine. + (generate_finalization_wrapper): Add support for assumed rank + finalizers. + (gfc_may_be_finalized): New helper function. + * dump-parse-tree.cc (write_proc): Whitespace. + * gfortran.h : Add prototype for gfc_may_be_finalized. + * resolve.cc (resolve_function): Correct derived types that + have an incomplete namespace. + (resolve_where, gfc_resolve_where_code_in_forall, + gfc_resolve_forall_body, gfc_resolve_code): Check that the op + code is still EXEC_ASSIGN. If it is set lhs to must finalize. + (is_finalizable_type): New function. + (generate_component_assignments): Set must_finalize if needed. + (gfc_resolve_finalizers): Error if assumed rank finalizer is + not the only one. Warning on lack of scalar finalizer modified + to account for assumed rank finalizers. + (generate_final_call): New function. + (generate_component_assignments): Enclose the outermost call in + a block to capture automatic deallocation and final calls. + Set must_finalize as required to satisfy the standards. Use an + explicit pointer assignment for pointer components to capture + finalization of the target. Likewise use explicit assignment + for allocatable components. Do not use the temporary copy of + the lhs in defined assignment if the component is allocatable. + Put the temporary in the same namespace as the lhs symbol if + the component may be finalized. Remove the leading assignment + from the expansion of assignment of components that have their + own defined assignment components. Suppress finalization of + assignment of temporary components to the lhs. Make an explicit + final call for the rhs function temporary if it exists. + (gfc_resolve_code): Set must_finalize for assignments with an + array constructor on the rhs. + (gfc_resolve_finalizers): Ensure that an assumed rank finalizer + is the only finalizer for that type and correct the surprising + warning for the lack of a scalar finalizer. + (check_defined_assignments): Handle allocatable components. + (resolve_fl_derived): Set referenced the vtab for use + associated symbols. + (resolve_symbol): Set referenced an unreferenced symbol that + will be finalized. + * trans-array.cc (gfc_trans_array_constructor_value): Add code + to finalize the constructor result. Warn that this feature was + removed in F2018 and that it is suppressed by -std=2018. + (trans_array_constructor): Add finalblock, pass to previous + and apply to loop->post if filled. + (gfc_add_loop_ss_code): Add se finalblock to outer loop post. + (gfc_trans_array_cobounds, gfc_trans_array_bounds): Add any + generated finalization code to the main block. + (structure_alloc_comps): Add boolean argument to suppress + finalization and use it for calls from + gfc_deallocate_alloc_comp_no_caf. Otherwise it defaults to + false. + (gfc_copy_alloc_comp_no_fini): New wrapper for + structure_alloc_comps. + (gfc_alloc_allocatable_for_assignment): Suppress finalization + by setting new arg in call to gfc_deallocate_alloc_comp_no_caf. + (gfc_trans_deferred_array): Use gfc_may_be_finalized and do not + deallocate the components of entities with a leading '_' in the + name that are also marked as artificial. + * trans-array.h : Add the new boolean argument to the prototype + of gfc_deallocate_alloc_comp_no_caf with a default of false. + Add prototype for gfc_copy_alloc_comp_no_fini. + * trans-decl.cc(init_intent_out_dt): Tidy up the code. + * trans-expr.cc (gfc_init_se): Initialize finalblock. + (gfc_conv_procedure_call): Use gfc_finalize_tree_expr to + finalize function results. Replace in-line block for class + results with call to new function. + (gfc_conv_expr): Finalize structure constructors for F2003 and + F2008. Warn that this feature was deleted in F2018 and, unlike + array constructors, is not default. Add array constructor + finalblock to the post block. + (gfc_trans_scalar_assign): Suppress finalization by setting new + argument in call to gfc_deallocate_alloc_comp_no_caf. Add the + finalization blocks to the main block. + (gfc_trans_arrayfunc_assign): Use gfc_assignment_finalizer_call + and ensure that finalization occurs after the evaluation of the + rhs but using the initial value for the lhs. Finalize rhs + function results using gfc_finalize_tree_expr. + (trans_class_assignment, gfc_trans_assignment_1): As previous + function, taking care to order evaluation, assignment and + finalization correctly. + * trans-io.cc (gfc_trans_transfer): Add the final block. + * trans-stmt.cc (gfc_trans_call, gfc_trans_allocate): likewise. + (trans_associate_var): Nullify derived allocatable components + and finalize function targets with defined assignment + components on leaving the block scope. + (trans_allocate): Finalize source expressions, if required, + and set init_expr artificial temporarily to suppress the + finalization in gfc_trans_assignment. + * trans.cc (gfc_add_finalizer_call): Do not finalize the + temporaries generated in type assignment with defined + assignment components. + (gfc_assignment_finalizer_call): New function. + (gfc_finalize_tree_expr): New function. + * trans.h: Add finalblock to gfc_se. Add the prototypes for + gfc_finalize_tree_expr and gfc_assignment_finalizer_call. + +2023-03-15 Harald Anlauf <anlauf@gmx.de> + Tobias Burnus <tobias@codesourcery.com> + + PR fortran/58331 + * interface.cc (compare_parameter): Adjust check of array dummy + arguments to handle the case of CLASS variables. + +2023-03-11 Harald Anlauf <anlauf@gmx.de> + + PR fortran/106945 + * trans-expr.cc (gfc_copy_class_to_class): Convert element counts in + bounds check to common type for comparison. + +2023-03-10 Harald Anlauf <anlauf@gmx.de> + + PR fortran/104332 + * resolve.cc (resolve_symbol): Avoid NULL pointer dereference while + checking a symbol with the BIND(C) attribute. + +2023-03-05 Harald Anlauf <anlauf@gmx.de> + Tobias Burnus <tobias@codesourcery.com> + + PR fortran/106856 + * class.cc (gfc_build_class_symbol): Handle update of attributes of + existing class container. + (gfc_find_derived_vtab): Fix several memory leaks. + (find_intrinsic_vtab): Ditto. + * decl.cc (attr_decl1): Manage update of symbol attributes from + CLASS attributes. + * primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or + updated from the class container. + * symbol.cc (free_old_symbol): Adjust management of symbol versions + to not prematurely free array specs while working on the declation + of CLASS variables. + +2023-03-01 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/108546 + * trans-openmp.cc (gfc_trans_omp_clauses): Fix mapping of + type(C_ptr) variables. + +2023-02-27 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108937 + * trans-intrinsic.cc (gfc_conv_intrinsic_ibits): Handle corner case + LEN argument of IBITS equal to BITSIZE(I). + +2023-02-25 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/108923 + * intrinsic.cc (get_intrinsic_dummy_arg, + set_intrinsic_dummy_arg): Rename the former to the latter. + Remove the return value, add a reference to the lhs as argument, + and do the pointer assignment inside the function. Don't do + it if the pointer is already non-NULL. + (sort_actual): Update caller. + +2023-02-25 Harald Anlauf <anlauf@gmx.de> + + * arith.cc (gfc_real2int): Clear mpfr variable after use. + +2023-02-25 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/108621 + * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Skip setting of + bounds of CFI desc for 'pointer,intent(out)'. + +2023-02-24 Rimvydas Jasinskas <rimvydas.jas@gmail.com> + + * trans-decl.cc (gfc_finish_var_decl): Apply attribute. + (generate_local_decl): Add diagnostic for dummy and local variables. + +2023-02-24 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/108923 + * expr.cc (gfc_free_actual_arglist): Free associated_dummy + memory. + (gfc_copy_actual_arglist): Make a copy of the associated_dummy + field if it is set in the original element. + +2023-02-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108924 + * frontend-passes.cc (do_subscript): Clear used gmp variable. + +2023-02-23 Arsen Arsenović <arsen@aarsen.me> + + * invoke.texi: Reorder index entries around @items. + +2023-02-23 Arsen Arsenović <arsen@aarsen.me> + + * invoke.texi: Reorder @opindex commands to precede @items they + relate to. + +2023-02-22 Harald Anlauf <anlauf@gmx.de> + + PR fortran/96024 + * resolve.cc (resolve_component): The type of a CHARACTER length + expression must be INTEGER. + +2023-02-21 Harald Anlauf <anlauf@gmx.de> + + PR fortran/96025 + * parse.cc (check_function_result_typed): Improve type check of + specification expression for character length and return status. + (parse_spec): Use status from above. + * resolve.cc (resolve_fntype): Prevent use of invalid specification + expression for character length. + +2023-02-16 Patrick Palka <ppalka@redhat.com> + + * gfortran.h: Mechanically drop static from static inline + functions via s/^static inline/inline/g. + +2023-02-15 Steve Kargl <kargl@gcc.gnu.org> + + PR fortran/103608 + * frontend-passes.cc (do_intent): Catch NULL pointer dereference on + reference to invalid formal argument. + +2023-02-15 Steve Kargl <kargl@gcc.gnu.org> + + PR fortran/104554 + * resolve.cc (check_assumed_size_reference): Avoid NULL pointer + dereference. + +2023-02-15 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/108512 + * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop' + directives. + (gfc_resolve_do_iterator): Set a source location for added + 'private'-clause arguments. + * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks + also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for + combined directives with loop + '{masked,master} taskloop (simd)'. + +2023-02-13 Harald Anlauf <anlauf@gmx.de> + + PR fortran/103475 + * primary.cc (gfc_expr_attr): Avoid NULL pointer dereference for + invalid use of CLASS variable. + +2023-02-13 Rimvydas Jasinskas <rimvydas.jas@gmail.com> + + * decl.cc: Add EXT_ATTR_NOINLINE, EXT_ATTR_NORETURN, EXT_ATTR_WEAK. + * gfortran.h (ext_attr_id_t): Ditto. + * gfortran.texi (GCC$ ATTRIBUTES): Document them. + * trans-decl.cc (build_function_decl): Apply them. + +2023-02-09 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/69636 + PR fortran/103779 + * intrinsic.cc (gfc_convert_chartype): Recover on invalid character + kind in conversion instead of generating an internal error. + +2023-02-09 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/107424 + * trans-openmp.cc (struct dovar_init_d): Add 'sym' and + 'non_unit_incr' members. + (gfc_nonrect_loop_expr): New. + (gfc_trans_omp_do): Call it; use normal loop bounds + for unit stride - and only create local loop var. + +2023-02-09 Tobias Burnus <tobias@codesourcery.com> + + * parse.cc (decode_omp_directive): Really ignore 'assumes' with + -fopenmp-simd. + +2023-02-08 Steve Kargl <kargl@gcc.gnu.org> + + PR fortran/103259 + * resolve.cc (resolve_common_vars): Avoid NULL pointer dereference + when a symbol's location is not set. + +2023-02-07 Harald Anlauf <anlauf@gmx.de> + + PR fortran/95107 + * trans-decl.cc (gfc_finish_var_decl): With -fno-automatic, do not + make ASSOCIATE variables TREE_STATIC. + +2023-02-05 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108592 + * arith.cc (gfc_arith_divide): Emit integer division truncation + warnings using gfc_warning instead of gfc_warning_now to prevent + redundant messages. + +2023-02-03 Jakub Jelinek <jakub@redhat.com> + + PR fortran/108451 + * trans-decl.cc (gfc_trans_use_stmts): Call clear_slot before + doing continue. + +2023-02-01 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108609 + * expr.cc (find_array_section): Add check to prevent interpreting an + mpz non-integer constant as an integer. + +2023-02-01 Tobias Burnus <tobias@codesourcery.com> + + * openmp.cc (resolve_omp_clauses): Check also for + power of two. + +2023-01-29 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/108450 + * check.cc (gfc_check_minloc_maxloc): Explicitly set argument name. + (gfc_check_findloc): Ditto. + +2023-01-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/103506 + * parse.cc (parse_module): Remove use of a bool error value + that prevented proper setting of the namespace pointer. + +2023-01-28 Harald Anlauf <anlauf@gmx.de> + Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/108527 + * resolve.cc (compare_bound_int): Expression to compare must be of + type INTEGER. + (compare_bound_mpz_t): Likewise. + (check_dimension): Fix comment on checks applied to array section + and clean up associated logic. + +2023-01-28 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108453 + * match.cc (gfc_match_common): A USE associated name shall not appear + in a COMMON block (F2018:C8121). + +2023-01-27 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/108558 + * trans-openmp.cc (gfc_split_omp_clauses): Handle has_device_addr. + +2023-01-26 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108544 + * resolve.cc (check_host_association): Extend host association check + so that it is not restricted to functions. Also prevent NULL pointer + dereference. + +2023-01-25 Steve Kargl <kargl@gcc.gnu.org> + + PR fortran/108528 + * array.cc (compare_bounds): Return false instead of generating an + internal error on an invalid argument type. + +2023-01-24 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108529 + * simplify.cc (simplify_transformation): Do not try to simplify + transformational intrinsic when the ARRAY argument has a NULL shape. + +2023-01-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108502 + * dependency.cc (gfc_check_dependency): Prevent NULL pointer + dereference while recursively checking expressions. + +2023-01-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108501 + * interface.cc (get_expr_storage_size): Check array subscript triplets + that we actually have integer values before trying to extract with + mpz_get_si. + +2023-01-23 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108420 + * iresolve.cc (check_charlen_present): Preserve character length if + there is no array constructor. + +2023-01-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/102595 + * data.cc (gfc_assign_data_value): Remove check for PARAMETER in DATA. + * primary.cc (match_variable): Add check for PARAMETER in DATA. + +2023-01-19 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108434 + * expr.cc (class_allocatable): Prevent NULL pointer dereference + or invalid read. + (class_pointer): Likewise. + +2023-01-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/108421 + * interface.cc (get_expr_storage_size): Check that we actually have + an integer value before trying to extract it with mpz_get_si. + +2023-01-12 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/107706 + * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars. + +2023-01-11 Jakub Jelinek <jakub@redhat.com> + + PR fortran/108349 + * f95-lang.cc (gfc_init_builtin_function): Fix up function types + for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}. Formatting fixes. + +2023-01-10 Harald Anlauf <anlauf@gmx.de> + + PR fortran/97345 + * frontend-passes.cc (do_subscript): Clear used gmp variables. + +2023-01-02 Jakub Jelinek <jakub@redhat.com> + + * gfortranspec.cc (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) 2023 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. |