]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/fortran/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
index fa4a265ba06c8b2ac6d56be5cad0a3700259dc70..d937291cbbcfc1181cf87c9d04cf8110d0685f92 100644 (file)
@@ -1,3 +1,466 @@
+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>