| 2025-09-06 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/84119 |
| * resolve.cc (reset_array_ref_to_scalar): New function using |
| chunk broken out from gfc_resolve_ref. |
| (gfc_resolve_ref): Call the new function, the first time for |
| PDT type parameters and the second time for LEN inquiry refs. |
| |
| 2025-09-05 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/84432 |
| PR fortran/114815 |
| * expr.cc (gfc_check_assign_symbol): Check that components in a |
| PDT with a default initializer have type and length parameters |
| that reduce to constant integer expressions. |
| * trans-expr.cc (gfc_trans_assignment_1): Parameterized |
| components cannot have default initializers so they must be |
| allocated after initialization. |
| |
| 2025-09-05 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/83762 |
| PR fortran/102457 |
| * decl.cc (gfc_get_pdt_instance): Check that variable PDT parm |
| expressions are of type integer. Note that the symbol must be |
| tested since the expression often appears as BT_PROCEDURE. |
| |
| 2025-09-03 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/121263 |
| * trans-intrinsic.cc (gfc_conv_intrinsic_transfer): For an |
| unlimited polymorphic SOURCE to TRANSFER use saved descriptor |
| if possible. |
| |
| 2025-09-02 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/89707 |
| * decl.cc (gfc_get_pdt_instance): Copy the typebound procedure |
| field from the PDT template. If the template interface has |
| kind=0, provide the new instance with an interface with a type |
| spec that points to that of the parameterized component. |
| (match_ppc_decl): When 'saved_kind_expr' this is a PDT and the |
| expression should be copied to the component kind_expr. |
| * gfortran.h: Define gfc_get_tbp. |
| |
| 2025-09-02 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/87669 |
| * expr.cc (gfc_spec_list_type): If no LEN components are seen, |
| unconditionally return 'SPEC_ASSUMED'. This suppresses an |
| invalid error in match.cc(gfc_match_type_is). |
| |
| 2025-09-01 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/121727 |
| * trans-expr.cc (gfc_const_length_character_type_p): New helper |
| function. |
| (conv_dummy_value): Use it to determine if a character actual |
| argument has a constant length. If a character actual argument is |
| constant and longer than the dummy, truncate it at compile time. |
| |
| 2025-08-31 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/99709 |
| * trans-array.cc (structure_alloc_comps): For the case |
| COPY_ALLOC_COMP, do a deep copy of non-allocatable PDT arrays |
| Suppress the use of 'duplicate_allocatable' for PDT arrays. |
| * trans-expr.cc (conv_dummy_value): When passing to a PDT dummy |
| with the VALUE attribute, do a deep copy to ensure that |
| parameterized components are reallocated. |
| |
| 2025-08-29 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/93330 |
| * interface.cc (get_sym_storage_size): Add argument size_known to |
| indicate that the storage size could be successfully determined. |
| (get_expr_storage_size): Likewise. |
| (gfc_compare_actual_formal): Use them to handle zero-sized dummy |
| and actual arguments. |
| If a character formal argument has the pointer or allocatable |
| attribute, or is an array that is not assumed or explicit size, |
| we generate an error by default unless -std=legacy is specified, |
| which falls back to just giving a warning. |
| If -Wcharacter-truncation is given, warn on a character actual |
| argument longer than the dummy. Generate an error for too short |
| scalar character arguments if -std=f* is given instead of just a |
| warning. |
| |
| 2025-08-28 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/82843 |
| * intrinsic.cc (gfc_convert_type_warn): If the 'from_ts' is a |
| PDT instance, copy the derived type to the target ts. |
| * resolve.cc (gfc_resolve_ref): A PDT component in a component |
| reference can be that of the pdt_template. Unconditionally use |
| component of the PDT instance to ensure that the backend_decl |
| is set during translation. Likewise if a component is |
| encountered that is a PDT template type, use the component |
| parmeters to convert to the correct PDT instance. |
| |
| 2025-08-28 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/82205 |
| * decl.cc (gfc_get_pdt_instance): Copy the default initializer |
| for components that are not PDT parameters or parameterized. If |
| any component is a pointer or allocatable set the attributes |
| 'pointer_comp' or 'alloc_comp' of the new PDT instance. |
| * primary.cc (gfc_match_rvalue): Implement the correct form of |
| PDT constructors with 'name (type parms)(component values)'. |
| * trans-array.cc (structure_alloc_comps): Apply scalar default |
| initializers. Array initializers await the coming change in PDT |
| representation. |
| * trans-io.cc (transfer_expr): Do not output the type parms of |
| a PDT in list directed output. |
| |
| 2025-08-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/114611 |
| * io.cc: Issue an error on use of the H descriptor in |
| a format with -std=f95 or higher. Otherwise, issue a |
| warning. |
| |
| 2025-08-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/118839 |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Error if variant |
| is the same as base. |
| |
| 2025-08-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * openmp.cc (gfc_match_omp_declare_variant): Make check for a |
| missing "match" clause unconditional. |
| |
| 2025-08-21 Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/121627 |
| * module.cc (create_int_parameter_array): Avoid NULL |
| pointer dereference and enhance error message. |
| |
| 2025-08-21 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/84122 |
| PR fortran/85942 |
| * parse.cc (parse_derived): PDT type parameters are not allowed |
| an explicit access specification and must appear before a |
| PRIVATE statement. If a PRIVATE statement is seen, mark all the |
| other components as PRIVATE. |
| * simplify.cc (get_kind): Convert a PDT KIND component into a |
| specification expression using the default initializer. |
| |
| 2025-08-20 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| * intrinsic.texi: Correct the example given for FRACTION. |
| Move the TEAM_NUMBER section to after the TANPI to align |
| with the order gven in the index. |
| |
| 2025-08-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR fortran/107421 |
| * trans-common.cc (build_common_decl): Call set_decl_tls_model |
| after processing a variable. |
| * trans-decl.cc (gfc_finish_var_decl): Likewise. |
| (get_proc_pointer_decl): Likewise. |
| |
| 2025-08-13 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/89092 |
| * resolve.cc (was_declared): Add subroutine attribute. |
| |
| 2025-08-12 Yuao Ma <c8ef@outlook.com> |
| |
| * check.cc (gfc_check_c_f_pointer): Check lower arg legitimacy. |
| * intrinsic.cc (add_subroutines): Teach c_f_pointer about lower arg. |
| * intrinsic.h (gfc_check_c_f_pointer): Add lower arg. |
| * intrinsic.texi: Update lower arg for c_f_pointer. |
| * trans-intrinsic.cc (conv_isocbinding_subroutine): Add logic handle lower. |
| |
| 2025-08-11 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/121398 |
| * resolve.cc (check_pdt_args): New function. |
| (check_generic_tbp_ambiguity): Use it to ensure that args to |
| typebound procedures that do not have the same declared type as |
| the containing derived type have 'pass1/2' set to null. This |
| avoids false ambiguity errors. |
| (resolve_typebound_procedure): Do not generate a wrong type |
| error for typebound procedures marked as pass if they are of a |
| different declared type to the containing pdt_type. |
| |
| 2025-08-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * gfortran.h (gfc_case): Fix comment typo, singe -> single. |
| |
| 2025-08-09 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/121182 |
| * decl.cc (match_generic_stmt): New function based on original |
| gfc_match_generic but feeding namespace rather than typebound |
| generics. |
| (match_typebound_generic): Renamed original gfc_match_generic. |
| (gfc_match_generic): New function that selects between type |
| bound generic and other generic statements and calls one of the |
| above two functions as appropriate. |
| * parse.cc (decode_specification_statement): Allow generic |
| statements. |
| (parse_spec): Accept a generic statement in a specification |
| block. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-stmt.cc (trans_associate_var): Remove overwrite of |
| the polymorphic associate variable's array descriptor offset. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-array.cc (trans_array_constructor): Remove the update of |
| the array descriptor upper bound after array constructor |
| expansion. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-array.cc (gfc_conv_expr_descriptor): Remove |
| isolated initialization of the span field before passing to |
| the function that will do the initialization. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-decl.cc (gfc_trans_deferred_vars): Don't default |
| initialize the span of local pointer arrays. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-stmt.cc (trans_associate_var): Remove overwrite of the |
| span field of the associate variable's array descriptor. |
| |
| 2025-08-05 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-expr.cc (gfc_trans_pointer_assignment): Remove overwrite |
| of the span after assignment of the array descriptor in the |
| polymorphic function result to non-polymorphic pointer case. |
| |
| 2025-08-05 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans.h (gfc_se): Remove field use_offset. |
| * trans-expr.cc (gfc_conv_intrinsic_to_class): Remove use_offset |
| initialization. |
| (gfc_conv_procedure_call): Likewise. |
| * trans-stmt.cc (trans_associate_var): Likewise. |
| |
| 2025-08-05 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-array.cc (gfc_alloc_allocatable_for_assignment): Use the |
| offset setter instead of generating a write to the offset. |
| (gfc_conv_array_parameter): Use the offset setter instead of |
| generating a write to the value returned by the offset getter. |
| * trans-expr.cc (gfc_trans_alloc_subarray_assign): Likewise. |
| |
| 2025-08-05 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-array.cc (gfc_conv_descriptor_data_addr): Remove. |
| * trans-array.h (gfc_conv_descriptor_data_addr): Remove. |
| * trans-decl.cc (gfc_trans_deferred_vars): Use |
| gfc_conv_descriptor_data_get. |
| |
| 2025-08-05 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans.cc (gfc_finalize_tree_expr): Use the data setter instead |
| of writing to the value returned by the data getter. |
| * trans-decl.cc (gfc_trans_deferred_vars): Likewise. |
| * trans-stmt.cc (trans_associate_var): Use the data setter |
| instead of writing to the value dereferenced from the data |
| address. |
| |
| 2025-08-01 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-decl.cc (gfc_trans_deferred_vars): Fix closing brace in |
| a comment. |
| |
| 2025-07-31 Mikael Morin <morin-mikael@orange.fr> |
| |
| PR fortran/121342 |
| * trans-expr.cc (gfc_conv_subref_array_arg): Remove offset |
| update. |
| (gfc_conv_procedure_call): For polymorphic functions, move the |
| scalarizer descriptor information... |
| * trans-array.cc (gfc_add_loop_ss_code): ... here, and evaluate |
| the bounds to fresh variables. |
| (get_class_info_from_ss): Remove offset update. |
| (gfc_conv_ss_startstride): Don't set a zero value for function |
| result upper bounds. |
| (late_set_loop_bounds): New. |
| (gfc_conv_loop_setup): If the bounds of a function result have |
| been set, and no other array provided loop bounds for a |
| dimension, use the function result bounds as loop bounds for |
| that dimension. |
| (gfc_set_delta): Don't skip delta setting for polymorphic |
| function results. |
| |
| 2025-07-30 Mikael Morin <morin-mikael@orange.fr> |
| |
| * trans-array.cc (gfc_array_init_size): Remove the nelems |
| argument. |
| (gfc_array_allocate): Update caller. Remove the nelems |
| argument. |
| * trans-stmt.cc (gfc_trans_allocate): Update caller. Remove the |
| nelems variable. |
| * trans-array.h (gfc_array_allocate): Update prototype. |
| |
| 2025-07-30 Yuao Ma <c8ef@outlook.com> |
| |
| * check.cc (gfc_check_split): Argument check for SPLIT. |
| * gfortran.h (enum gfc_isym_id): Define GFC_ISYM_SPLIT. |
| * intrinsic.cc (add_subroutines): Register SPLIT intrinsic. |
| * intrinsic.h (gfc_check_split): New decl. |
| (gfc_resolve_split): Ditto. |
| * intrinsic.texi: SPLIT documentation. |
| * iresolve.cc (gfc_resolve_split): Add resolved_sym for SPLIT. |
| * trans-decl.cc (gfc_build_intrinsic_function_decls): Add decl for |
| SPLIT in libgfortran. |
| * trans-intrinsic.cc (conv_intrinsic_split): SPLIT codegen. |
| (gfc_conv_intrinsic_subroutine): Handle SPLIT case. |
| * trans.h (GTY): Declare gfor_fndecl_string_split{, _char4}. |
| |
| 2025-07-27 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR fortran/121185 |
| * trans-expr.cc (gfc_trans_assignment_1): Use the same condition |
| to set the is_alloc_lhs flag and to decide to generate |
| reallocation code. Add explicit call to gfc_fix_class_refs |
| before evaluating the condition. |
| |
| 2025-07-27 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR fortran/121185 |
| * trans-array.cc (set_factored_descriptor_value): Also trigger |
| the saving of the previously selected reference on encountering |
| an INDIRECT_REF. Extract the saving code... |
| (save_ref): ... here as a new function. |
| |
| 2025-07-27 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR fortran/121185 |
| * trans-expr.cc (gfc_get_class_from_expr): Give up class |
| container lookup on the second COMPONENT_REF after an array |
| descriptor. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * error.cc: Make diagnostics::context::m_source_printing private. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * cpp.cc: Update usage of "diagnostic_info" to explicitly refer to |
| "diagnostics::diagnostic_info". |
| * error.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * cpp.cc: Update for diagnostic_t becoming |
| enum class diagnostics::kind. |
| * error.cc: Likewise. |
| * options.cc: Likewise. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * cpp.cc: Update for renaming of |
| diagnostic_option_id to diagnostics::option_id. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * error.cc: Update for move of diagnostic-color.h to |
| diagnostics/color.h. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * error.cc: Update for diagnostic_context becoming |
| diagnostics::context. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * error.cc: Update to add "m_" prefix to fields of |
| diagnostic_info throughout. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * error.cc: Update for move of diagnostics output formats into |
| namespace "diagnostics" as "sinks". |
| * gfortran.h: Likewise. |
| |
| 2025-07-23 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/121203 |
| * trans-expr.cc (gfc_conv_procedure_call): Obtain the character |
| length of an assumed character length procedure from the typespec |
| of the actual argument even if there is no explicit interface. |
| |
| 2025-07-21 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-decl.cc (gfc_trans_deferred_vars): Fix indentation. |
| |
| 2025-07-21 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/119106 |
| * expr.cc (simplify_constructor): Do not simplify constants. |
| (gfc_simplify_expr): Continue to simplify expression when an |
| iterator is present. |
| |
| 2025-07-21 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-array.cc (gfc_conv_ss_descriptor): Move the descriptor |
| expression initialisation... |
| (set_factored_descriptor_value): ... to this new function. |
| Before initialisation, walk the reference expression passed as |
| argument and save some of its subexpressions to a variable. |
| (substitute_t): New struct. |
| (maybe_substitute_expr): New function. |
| (substitute_subexpr_in_expr): New function. |
| |
| 2025-07-18 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/121145 |
| * trans-expr.cc (gfc_conv_procedure_call): Do not create pointer |
| check for proc-pointer actual passed to optional dummy. |
| |
| 2025-07-16 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/121060 |
| * interface.cc (matching_typebound_op): Defer determination of |
| specific procedure until resolution by returning NULL. |
| |
| 2025-07-16 Steve Kargl <sgk@troutmask.apl.washington.edu> |
| |
| * decl.cc (gfc_match_import): Correct minor whitespace snafu |
| and fix NULL pointer dereferences in two places. |
| |
| 2025-07-15 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| PR fortran/104428 |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Check that proc_st |
| is non-NULL before dereferencing. Add line number to error message. |
| |
| 2025-07-15 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * gfortran.h (gfc_symbol): Remove field allocated_in_scope. |
| * trans-array.cc (gfc_array_allocate): Don't set it. |
| (gfc_alloc_allocatable_for_assignment): Likewise. |
| Generate the unallocated descriptor bounds initialisation |
| before the opening of the reallocation code block. Create a |
| variable and use it as additional condition to the unallocated |
| descriptor bounds initialisation. |
| |
| 2025-07-15 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-array.cc (gfc_conv_ss_descriptor): Don't evaluate |
| offset and data to a variable if is_alloc_lhs is set. Move the |
| existing evaluation decision condition for data... |
| (save_descriptor_data): ... here as a new predicate. |
| (evaluate_bound): Add argument save_value. Omit the evaluation |
| of the value to a variable if that argument isn't set. |
| (gfc_conv_expr_descriptor): Update caller. |
| (gfc_conv_section_startstride): Update caller. Set save_value |
| if is_alloc_lhs is not set. Omit the evaluation of stride to a |
| variable if save_value isn't set. |
| (gfc_set_delta): Omit the evaluation of delta to a variable |
| if is_alloc_lhs is set. |
| (gfc_is_reallocatable_lhs): Return false if flag_realloc_lhs |
| isn't set. |
| (gfc_alloc_allocatable_for_assignment): Don't update |
| the variables that may be stored in saved_offset, delta, and |
| data. Call instead... |
| (update_reallocated_descriptor): ... this new procedure. |
| * trans-expr.cc (gfc_trans_assignment_1): Don't omit setting the |
| is_alloc_lhs flag if the right hand side is an intrinsic |
| function. Clear the flag if the right hand side is scalar. |
| |
| 2025-07-15 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-expr.cc (gfc_trans_assignment_1): Generate array |
| reallocation code before entering the scalarisation loops. |
| |
| 2025-07-15 Filip Kastl <fkastl@suse.cz> |
| |
| * resolve.cc (resolve_select_type): Fix indentation. |
| |
| 2025-07-12 Tobias Burnus <tburnus@baylibre.com> |
| |
| * invoke.texi (-Wsurprising): Note about OpenACC warning |
| related to PARAMATER. |
| * openmp.cc (resolve_omp_clauses, gfc_resolve_oacc_declare): |
| Accept PARAMETER for OpenACC but add surprising warning. |
| * trans-openmp.cc (gfc_trans_omp_variable_list, |
| gfc_trans_omp_clauses): Ignore PARAMETER inside clauses. |
| |
| 2025-07-11 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/106035 |
| * decl.cc (build_sym): Emit an error if a symbol associated by |
| an IMPORT, ONLY or IMPORT, all statement is being redeclared. |
| (gfc_match_import): Parse and check the F2018 versions of the |
| IMPORT statement. For scopes other than and interface body, if |
| the symbol cannot be found in the host scope, generate it and |
| set it up such that gfc_fixup_sibling_symbols can transfer its |
| 'imported attribute' if it turnes out to be a not yet parsed |
| procedure. Test for violations of C897-8100. |
| * gfortran.h : Add 'import_only' to the gfc_symtree structure. |
| Add the enum, 'importstate', which is used for values the new |
| field 'import_state' in gfc_namespace. |
| * parse.cc (gfc_fixup_sibling_symbols): Transfer the attribute |
| 'imported' to the new symbol. |
| * resolve.cc (check_sym_import_status, check_import_status): |
| New functions to test symbols and expressions for violations of |
| F2018:C8102. |
| (resolve_call): Test the 'resolved_sym' against C8102 by a call |
| to 'check_sym_import_status'. |
| (gfc_resolve_expr): If the expression is OK and an IMPORT |
| statement has been registered in the current scope, test C102 |
| by calling 'check_import_status'. |
| (resolve_select_type): Test the declared derived type in TYPE |
| IS and CLASS IS statements. |
| |
| 2025-07-08 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120637 |
| * class.cc (finalize_component): Return true, when a finalizable |
| component was detect and do not free it. |
| |
| 2025-07-07 Mikael Morin <mikael@gcc.gnu.org> |
| |
| * trans-intrinsic.cc (conv_intrinsic_move_alloc): Add pre and |
| post code for the FROM and TO arguments. |
| |
| 2025-07-04 Martin Jambor <mjambor@suse.cz> |
| |
| * io.cc (format_asterisk): Add a brace around static initialization |
| location part of the field locus. |
| |
| 2025-07-03 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120843 |
| * resolve.cc (resolve_operator): Remove conformability check, |
| because it is not in the standard. |
| |
| 2025-07-01 Harald Anlauf <anlauf@gmx.de> |
| |
| * coarray.cc (check_add_new_component): Treat pure and elemental |
| intrinsic functions the same as non-intrinsic ones. |
| (create_caf_add_data_parameter_type): Fix front-end memleaks. |
| * trans-intrinsic.cc (conv_caf_func_index): Likewise. |
| |
| 2025-07-01 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120847 |
| * coarray.cc (check_add_new_comp_handle_array): Make the count |
| of components static to be able to create more than one. Create |
| an array component only for array expressions. |
| |
| 2025-07-01 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120843 |
| * resolve.cc (resolve_operator): Report inconsistent coranks |
| only when not referencing this_image. |
| (gfc_op_rank_conformable): Treat coranks as inconformable only |
| when a coindex other then implicit this_image is used. |
| |
| 2025-06-27 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/120784 |
| * interface.cc (gfc_match_end_interface): Detect empty local_name. |
| |
| 2025-06-26 Martin Jambor <mjambor@suse.cz> |
| |
| * match.cc (gfc_match_nullify): Initialize p to NULL; |
| |
| 2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| * trans.cc (gfc_allocate_using_malloc): Prevent possible memory |
| leak when allocation was already done. |
| |
| 2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| * resolve.cc (resolve_fl_derived0): Do not create the token |
| component when not in coarray lib mode. |
| * trans-types.cc: Do not access the token when not in coarray |
| lib mode. |
| |
| 2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120711 |
| * trans-array.cc (gfc_trans_array_ctor_element): Store the value |
| of the offset for reuse. |
| |
| 2025-06-24 Tobias Burnus <tburnus@baylibre.com> |
| |
| * trans-stmt.cc (gfc_trans_call_acc_attach_detach): New. |
| (gfc_trans_call): Call it. |
| |
| 2025-06-24 Harald Anlauf <anlauf@gmx.de> |
| Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR fortran/120743 |
| * trans-expr.cc (gfc_conv_substring): Substring indices are of |
| type gfc_charlen_type_node. Convert to size_type_node for |
| pointer arithmetic only after offset adjustments have been made. |
| |
| 2025-06-24 Mikael Morin <morin-mikael@orange.fr> |
| |
| * misc.cc (gfc_var_name_for_select_type_temp): New function. |
| * gfortran.h (gfc_var_name_for_select_type_temp): Declare it. |
| * resolve.cc (resolve_select_type): Pick a discriminating name |
| from the SELECT TYPE variable reference and use it in the name |
| of the temporary variable that is generated. Truncate name to |
| the buffer size. |
| * match.cc (select_type_set_tmp): Likewise. Pass the |
| discriminating name... |
| (select_intrinsic_set_tmp): ... to this function. Use the |
| discriminating name likewise. Augment the buffer size to match |
| that of select_type_set_tmp and resolve_select_type. |
| |
| 2025-06-23 Tobias Burnus <tburnus@baylibre.com> |
| |
| * openmp.cc (OACC_WAIT_CLAUSES): Add if clause. |
| * trans-openmp.cc (gfc_trans_oacc_wait_directive): Handle it. |
| |
| 2025-06-23 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/120784 |
| * interface.cc (gfc_match_end_interface): If a use-associated |
| symbol is renamed, use the local_name for checking. |
| |
| 2025-06-19 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR fortran/120713 |
| * trans-array.cc (gfc_trans_deferred_array): Statically |
| initialize deferred length variable for SAVEd character arrays. |
| |
| 2025-06-18 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/82480 |
| * check.cc (gfc_check_fstat): Extend checks to INTENT(OUT) arguments. |
| (gfc_check_fstat_sub): Likewise. |
| (gfc_check_stat): Likewise. |
| (gfc_check_stat_sub): Likewise. |
| * intrinsic.texi: Adjust documentation. |
| |
| 2025-06-16 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/51961 |
| * resolve.cc (conformable_arrays): Use modified rank check when |
| MOLD= expression is given. |
| |
| 2025-06-12 Yuao Ma <c8ef@outlook.com> |
| Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/113152 |
| * intrinsic.texi: Document new half-revolution trigonometric |
| functions. Reorder doc for atand. |
| |
| 2025-06-06 Tobias Burnus <tburnus@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * f95-lang.cc (ATTR_PURE_NOTHROW_LIST): Define. |
| * trans-expr.cc (get_builtin_fn): Handle omp_get_num_devices |
| and omp_get_intrinsic_device. |
| * gfortran.h (gfc_option_t): Add disable_omp_... for them. |
| * options.cc (gfc_handle_option): Handle them with |
| -fno-builtin-. |
| |
| 2025-06-04 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/120483 |
| * trans-expr.cc (gfc_conv_substring): Use pointer arithmetic on |
| static allocatable char arrays. |
| |
| 2025-06-03 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/99838 |
| * data.cc (gfc_assign_data_value): For a new initializer use the |
| location from the constructor as fallback. |
| |
| 2025-05-30 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/102599 |
| PR fortran/114022 |
| * expr.cc (simplify_complex_array_inquiry_ref): Helper function for |
| simplification of inquiry references (%re/%im) of constant complex |
| arrays. |
| (find_inquiry_ref): Use it for handling %re/%im inquiry references |
| of complex arrays. |
| (scalarize_intrinsic_call): Fix frontend memleak. |
| * primary.cc (gfc_match_varspec): When the reference is NULL, the |
| previous simplification has succeeded in evaluating inquiry |
| references also of arrays. |
| |
| 2025-05-30 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/120355 |
| * interface.cc (compare_parameter): If the global function has a |
| result clause, take typespec from there for the comparison against |
| the dummy argument. |
| |
| 2025-05-30 Julian Brown <julian@codesourcery.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * parse.cc (tree.h, fold-const.h, tree-hash-traits.h): Add includes |
| (for additions to omp-general.h). |
| |
| 2025-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/120049 |
| * check.cc(check_c_ptr_2): Rephrase error message |
| for clarity. |
| |
| 2025-05-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/113152 |
| * simplify.cc (gfc_simplify_cospi, gfc_simplify_sinpi): Avoid using |
| mpfr_fmod_ui in the MPFR < 4.2.0 version. |
| |
| 2025-05-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/119856 |
| * io.cc: Set missing comma error checks to STD_STD_LEGACY. |
| |
| 2025-05-28 Yuao Ma <c8ef@outlook.com> |
| Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/113152 |
| * gfortran.h (enum gfc_isym_id): Add new enum. |
| * intrinsic.cc (add_functions): Register new intrinsics. Changing the call |
| from gfc_resolve_trigd{,2} to gfc_resolve_trig{,2}. |
| * intrinsic.h (gfc_simplify_acospi, gfc_simplify_asinpi, |
| gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi, |
| gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New. |
| (gfc_resolve_trig): Rename from gfc_resolve_trigd. |
| (gfc_resolve_trig2): Rename from gfc_resolve_trigd2. |
| * iresolve.cc (gfc_resolve_trig): Rename from gfc_resolve_trigd. |
| (gfc_resolve_trig2): Rename from gfc_resolve_trigd2. |
| * mathbuiltins.def: Add 7 new math builtins and re-align. |
| * simplify.cc (gfc_simplify_acos, gfc_simplify_asin, |
| gfc_simplify_acosd, gfc_simplify_asind): Revise error message. |
| (gfc_simplify_acospi, gfc_simplify_asinpi, |
| gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi, |
| gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New. |
| |
| 2025-05-27 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/101735 |
| * primary.cc (gfc_match_varspec): Correct order of logic. |
| |
| 2025-05-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/120049 |
| * check.cc (gfc_check_c_associated): Use new helper functions. |
| Only call check_c_ptr_1 if optional c_ptr_2 tests succeed. |
| (check_c_ptr_1): Handle only c_ptr_1 checks. |
| (check_c_ptr_2): Expand checks for c_ptr_2 and handle cases |
| where there is no derived pointer in the gfc_expr and check |
| the inmod_sym_id only if it exists. |
| * misc.cc (gfc_typename): Handle the case for BT_VOID rather |
| than throw an internal error. |
| |
| 2025-05-27 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/101735 |
| * expr.cc (find_inquiry_ref): If an inquiry reference applies to |
| a substring, use that, and calculate substring length if needed. |
| * primary.cc (extend_ref): Also handle attaching to end of |
| reference chain for appending. |
| (gfc_match_varspec): Discrimate between arrays of character and |
| substrings of them. If a substring is taken from a character |
| component of a derived type, get the proper typespec so that |
| inquiry references work correctly. |
| (gfc_match_rvalue): Handle corner case where we hit a seemingly |
| dangling '%' and missed an inquiry reference. Try another match. |
| |
| 2025-05-27 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116792 |
| * error.cc (gfc_diagnostic_start_span): Update for diagnostic.h |
| changes. |
| |
| 2025-05-19 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/120099 |
| * trans-types.cc (gfc_return_by_reference): Intrinsic functions |
| returning complex numbers may return their result by reference |
| with -ff2c. |
| |
| 2025-05-15 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/85750 |
| * resolve.cc (resolve_symbol): Reorder conditions when to apply |
| default-initializers. |
| |
| 2025-05-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| * trans-openmp.cc (gfc_omp_deep_mapping_do): Handle SSA_NAME if |
| a def_stmt is available. |
| |
| 2025-05-14 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/120139 |
| * dump-parse-tree.cc (get_c_type_name): If no constant |
| size of an array exists, output an asterisk. |
| |
| 2025-05-14 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/120107 |
| * dump-parse-tree.cc (write_type): Do not dump non-interoperable |
| types. |
| |
| 2025-05-14 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/120225 |
| * simplify.cc (gfc_simplify_cotand): Fix used argument in |
| mpfr_tanu call. |
| |
| 2025-05-14 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/120225 |
| * simplify.cc: Include "trigd_fe.inc" only with MPFR < 4.2.0. |
| (rad2deg, rad2deg): Only define if MPFR < 4.2.0. |
| (gfc_simplify_acosd, gfc_simplify_asind, gfc_simplify_atand, |
| gfc_simplify_atan2d, gfc_simplify_cosd, gfc_simplify_tand, |
| gfc_simplify_cotand): Use mpfr_...u functions with MPFR >= 4.2.0. |
| |
| 2025-05-13 Yuao Ma <c8ef@outlook.com> |
| Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/113413 |
| * intrinsic.cc (do_check): Minor doc polish. |
| (add_functions): Add atand(y, x) mapping. |
| * intrinsic.texi: Update atand example. |
| |
| 2025-05-13 Jakub Jelinek <jakub@redhat.com> |
| Daniil Kochergin <daniil2472s@gmail.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/120191 |
| * trans-intrinsic.cc (strip_kind_from_actual): Remove. |
| (gfc_conv_intrinsic_minmaxloc): Don't call strip_kind_from_actual. |
| Free and clear kind_arg->expr if non-NULL. Set back_arg->name to |
| "%VAL" instead of a loop looking for last argument. Remove actual |
| variable, use array_arg instead. Free and clear dim_arg->expr if |
| non-NULL for BT_CHARACTER cases instead of using a loop. |
| |
| 2025-05-11 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/120163 |
| * gfortran.h: Add formal_resolved to gfc_symbol. |
| * resolve.cc (gfc_resolve_formal_arglist): Set it. |
| (resolve_function): Do not call gfc_get_formal_from_actual_arglist |
| if we already resolved a formal arglist. |
| (resolve_call): Likewise. |
| |
| 2025-05-10 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/102891 |
| * dependency.cc (gfc_ref_needs_temporary_p): Within an array |
| reference, inquiry references of complex variables generally |
| need a temporary. |
| |
| 2025-05-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/120193 |
| * trans-types.cc (gfc_init_types): For flag_unsigned use |
| build_distinct_type_copy or build_variant_type_copy from |
| gfc_character_types[index_char] if index_char > -1 instead of |
| gfc_character_types[index_char] or |
| gfc_build_unsigned_type (&gfc_unsigned_kinds[index]). |
| |
| 2025-05-08 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/120179 |
| * match.cc (gfc_match_do): Do not attempt to match end-of-statement |
| twice. |
| |
| 2025-05-07 Paul Thomas <pault@gcc.gnu.org> |
| and Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/119948 |
| * primary.cc (match_variable): Module procedures with sym the |
| same as result can be treated as variables, although marked |
| external. |
| |
| 2025-05-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/120049 |
| * check.cc (gfc_check_c_associated): Modify checks to avoid |
| ICE and allow use, intrinsic :: iso_c_binding from a separate |
| module file. |
| |
| 2025-05-06 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119928 |
| * interface.cc (gfc_check_dummy_characteristics): Do not issue |
| error if one dummy symbol has been generated from an actual |
| argument and the other one has OPTIONAL, INTENT, ALLOCATABLE, |
| POINTER, TARGET, VALUE, ASYNCHRONOUS or CONTIGUOUS. |
| (gfc_get_formal_from_actual_arglist): Do nothing if symbol |
| is a class. |
| |
| 2025-05-04 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119986 |
| * expr.cc (is_subref_array): When searching for array references, |
| do not terminate early so that inquiry references to complex |
| components work. |
| * primary.cc (gfc_variable_attr): A substring reference can refer |
| to either a scalar or array character variable. Adjust search |
| accordingly. |
| |
| 2025-05-01 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/119948 |
| * resolve.cc (gfc_impure_variable): The result of a module |
| procedure with an interface declaration is not impure even if |
| the current namespace is not the same as the symbol's. |
| |
| 2025-04-25 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/102900 |
| * trans-decl.cc (gfc_generate_function_code): Use sym->result |
| when generating fake result decl for functions returning |
| allocatable or pointer results. |
| * trans-expr.cc (gfc_conv_procedure_call): When checking the |
| pointer status of an actual argument passed to a non-allocatable, |
| non-pointer dummy which is of type CLASS, do not check the |
| class container of the actual if it is just a procedure pointer. |
| (gfc_trans_pointer_assignment): Fix treatment of assignment to |
| NULL of a procedure pointer. |
| |
| 2025-04-23 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/119200 |
| * check.cc (gfc_check_lcobound): Use locus from intrinsic_where. |
| (gfc_check_image_index): Same. |
| (gfc_check_num_images): Same. |
| (gfc_check_team_number): Same. |
| (gfc_check_this_image): Same. |
| (gfc_check_ucobound): Same. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| * match.cc (match_exit_cycle): Allow to exit team block. |
| (gfc_match_end_team): Create end_team node also without |
| parameter list. |
| * trans-intrinsic.cc (conv_stat_and_team): Team and team_number |
| only need to be a single pointer. |
| * trans-stmt.cc (trans_associate_var): Create a mapping coarray |
| token for coarray associations or it is not addressed correctly. |
| * trans.h (enum gfc_coarray_regtype): Add mapping mode to |
| coarray register. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| * check.cc (gfc_check_image_index): Check for team or |
| team_number correctnes. |
| (gfc_check_num_images): Same. |
| * gfortran.texi: Update documentation on num_images' API |
| function. |
| * intrinsic.cc (add_functions): Update signature of image_index |
| and num_images. Both can take either a team handle or number. |
| * intrinsic.h (gfc_check_num_images): Update signature to take |
| either team or team_number. |
| (gfc_check_image_index): Can take coarray, subscripts and team |
| or team number now. |
| (gfc_simplify_image_index): Same. |
| (gfc_simplify_num_images): Same. |
| (gfc_resolve_image_index): Same. |
| * intrinsic.texi: Update documentation of num_images() Fortran |
| function. |
| * iresolve.cc (gfc_resolve_image_index): Update signature. |
| * simplify.cc (gfc_simplify_num_images): Update signature and |
| remove undocumented failed argument. |
| (gfc_simplify_image_index): Add team or team number argument. |
| * trans-intrinsic.cc (conv_stat_and_team): Because being |
| optional teams need to be a pointer to the opaque pointer. |
| (conv_caf_sendget): Correct call; was two arguments short. |
| (trans_image_index): Support team or team_number. |
| (trans_num_images): Same. |
| (conv_intrinsic_cobound): Adapt to changed signature of |
| num_images in call. |
| * trans-stmt.cc (gfc_trans_sync): Same. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/87326 |
| * check.cc (gfc_check_this_image): Check the three different |
| parameter lists possible for this_image and sort them correctly. |
| * gfortran.texi: Update documentation on this_image's API. |
| * intrinsic.cc (add_functions): Update this_image's signature. |
| (check_specific): Add specific check for this_image. |
| * intrinsic.h (gfc_check_this_image): Change to flexible |
| argument list. |
| * intrinsic.texi: Update documentation on this_image(). |
| * iresolve.cc (gfc_resolve_this_image): Resolve the different |
| arguments. |
| * simplify.cc (gfc_simplify_this_image): Simplify the simplify |
| routine. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Update |
| signature of this_image. |
| * trans-expr.cc (gfc_caf_get_image_index): Use correct signature |
| of this_image. |
| * trans-intrinsic.cc (trans_this_image): Adapt to correct |
| signature. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/88154 |
| PR fortran/88960 |
| PR fortran/97210 |
| PR fortran/103001 |
| * check.cc (team_type_check): Check a type for being team_type |
| from the iso_fortran_env module. |
| (gfc_check_image_status): Use team_type check. |
| (gfc_check_get_team): Check for level argument. |
| (gfc_check_team_number): Use team_type check. |
| * expr.cc (gfc_check_assign): Add treatment for returning |
| team_type in caf-single mode. |
| * gfortran.texi: Add/Update documentation for get_team and |
| team_number API functions. |
| * intrinsic.cc (add_functions): Update get_team signature. |
| * intrinsic.h (gfc_resolve_get_team): Add prototype. |
| * intrinsic.texi: Add/Update documentation for get_team and |
| team_number Fortran functions. |
| * iresolve.cc (gfc_resolve_get_team): Resolve return type to be |
| of type team_type. |
| * iso-fortran-env.def: Update STAT_LOCK constants. They have |
| nothing to do with files. Add level constants for get_team. |
| * libgfortran.h: Add level and unlock_stat constants. |
| * simplify.cc (gfc_simplify_get_team): Simply to correct return |
| type team_type. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Update |
| get_team and image_status API prototypes to correct signatures. |
| * trans-intrinsic.cc (conv_intrinsic_image_status): Translate |
| second parameter correctly. |
| (conv_intrinsic_team_number): Translate optional single team |
| argument correctly. |
| (gfc_conv_intrinsic_function): Add translation of get_team. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/87326 |
| PR fortran/87556 |
| PR fortran/88254 |
| PR fortran/103796 |
| * coarray.cc (split_expr_at_caf_ref): Treat polymorphic types |
| correctly. Ensure resolve of expression after coindex. |
| (create_allocated_callback): Fix parameter of allocated function |
| for coarrays. |
| (coindexed_expr_callback): Improve detection of coarrays in |
| allocated function. |
| * decl.cc (gfc_match_end): Add team block matching. |
| * dump-parse-tree.cc (show_code_node): Dump change team block as |
| such. |
| * frontend-passes.cc (gfc_code_walker): Recognice team block. |
| * gfortran.texi: Add documentation for team api functions. |
| * intrinsic.texi: Add documentation about team_type in |
| iso_fortran_env module. |
| * iso-fortran-env.def (team_type): Use helper to get pointer |
| kind. |
| * match.cc (gfc_match_associate): Factor out matching of |
| association list, because it is used in change team as well. |
| (check_coarray_assoc): Ensure, that the association is to a |
| coarray. |
| (match_association_list): Match a list of association either in |
| associate or in change team. |
| (gfc_match_form_team): Match form team correctly include |
| new_index. |
| (gfc_match_change_team): Match change team with association |
| list. |
| (gfc_match_end_team): Match end team including stat and errmsg. |
| (gfc_match_return): Prevent return from team block. |
| * parse.cc (decode_statement): Sort team block. |
| (next_statement): Same. |
| (check_statement_label): Same. |
| (accept_statement): Same. |
| (verify_st_order): Same. |
| (parse_associate): Renamed to move_associates_to_block... |
| (move_associates_to_block): ... to enable reuse for change team. |
| (parse_change_team): Parse it as block. |
| (parse_executable): Same. |
| * parse.h (enum gfc_compile_state): Add team block as compiler |
| state. |
| * resolve.cc (resolve_scalar_argument): New function to resolve |
| an argument to a statement as a scalar. |
| (resolve_form_team): Resolve its members. |
| (resolve_change_team): Same. |
| (resolve_branch): Prevent branch from jumping out of team block. |
| (check_team): Removed. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Add stat and |
| errmsg to team API functions and update their arguments. |
| * trans-expr.cc (gfc_trans_subcomponent_assign): Also null the |
| token when moving memory or an allocated() will not detect a |
| free. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote): |
| Adapt to signature change no longer a pointer-pointer. |
| * trans-stmt.cc (gfc_trans_form_team): Translate a form team |
| including new_index. |
| (gfc_trans_change_team): Translate a change team as a block. |
| |
| 2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/87939 |
| * check.cc (gfc_check_move_alloc): Add stat and errmsg to |
| move_alloc. |
| * dump-parse-tree.cc (show_sync_stat): New helper function. |
| (show_code_node): Use show_sync_stat to print stat and errmsg. |
| * gfortran.h (struct sync_stat): New struct to unify stat and |
| errmsg handling. |
| * intrinsic.cc (add_subroutines): Correct signature of |
| move_alloc. |
| * intrinsic.h (gfc_check_move_alloc): Correct signature of |
| check_move_alloc. |
| * match.cc (match_named_arg): Match an optional argument to a |
| statement. |
| (match_stat_errmsg): Match a stat= or errmsg= named argument. |
| (gfc_match_critical): Use match_stat_errmsg to match the named |
| arguments. |
| (gfc_match_sync_team): Same. |
| * resolve.cc (resolve_team_argument): Resolve an expr to have |
| type TEAM_TYPE from iso_fortran_env. |
| (resolve_scalar_variable_as_arg): Resolve an argument as a |
| scalar type. |
| (resolve_sync_stat): Resolve stat and errmsg expressions. |
| (resolve_sync_team): Resolve a sync team statement using |
| sync_stat helper. |
| (resolve_end_team): Same. |
| (resolve_critical): Same. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Correct |
| sync_team signature. |
| * trans-intrinsic.cc (conv_intrinsic_move_alloc): Store stat |
| an errmsg optional arguments in helper struct and use helper |
| to translate. |
| * trans-stmt.cc (trans_exit): Implement DRY pattern for |
| generating an _exit(). |
| (gfc_trans_sync_stat): Translate stat and errmsg contents. |
| (gfc_trans_end_team): Use helper to translate stat and errmsg. |
| (gfc_trans_sync_team): Same. |
| (gfc_trans_critical): Same. |
| * trans-stmt.h (gfc_trans_sync_stat): New function. |
| * trans.cc (gfc_deallocate_with_status): Parameterize check at |
| runtime to allow unallocated (co-)array when freeing a |
| structure. |
| (gfc_deallocate_scalar_with_status): Same and also add errmsg. |
| * trans.h (gfc_deallocate_with_status): Signature changes. |
| (gfc_deallocate_scalar_with_status): Same. |
| |
| 2025-04-19 Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR fortran/119836 |
| * resolve.cc (check_pure_function): Fix checking for |
| an impure subprogram within a DO CONCURRENT construct. |
| (pure_subroutine): Ditto. |
| |
| 2025-04-16 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/106948 |
| * resolve.cc (gfc_pure_function): If a function has been resolved, |
| but esym is not yet set, look at its attributes to see whether it |
| is pure or elemental. |
| |
| 2025-04-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| * f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING, |
| LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT): |
| Define. |
| * openmp.cc (gfc_match_omp_clause_reduction): Fix location setting. |
| (resolve_omp_clauses): Permit allocatable components, reject |
| them and polymorphic variables in PRIVATE/FIRSTPRIVATE. |
| * trans-decl.cc (add_clause): Set clause location. |
| * trans-openmp.cc (gfc_has_alloc_comps): Add ptr_ok and |
| shallow_alloc_only Boolean arguments. |
| (gfc_omp_replace_alloc_by_to_mapping): New. |
| (gfc_omp_private_outer_ref, gfc_walk_alloc_comps, |
| gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor, |
| gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Update call to it. |
| (gfc_omp_finish_clause): Minor cleanups, improve location data, |
| handle allocatable components. |
| (gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item, |
| gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop, |
| gfc_omp_get_array_size, gfc_omp_elmental_loop, |
| gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p, |
| gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do, |
| gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New. |
| (gfc_trans_omp_array_section): Save array descriptor in case |
| deep-mapping lang hook will need it. |
| (gfc_trans_omp_clauses): Likewise; use better clause location data. |
| * trans.h (gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_cnt, |
| gfc_omp_deep_mapping): Add function prototypes. |
| |
| 2025-04-13 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119669 |
| * interface.cc (compare_parameter): Error when mismatch between |
| formal argument as subroutine and function. If the dummy |
| argument is a known function, set its typespec. |
| |
| 2025-04-12 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR fortran/101602 |
| * trans-stmt.cc (gfc_trans_concurrent_locality_spec): Fix |
| 'static_assert'. |
| |
| 2025-04-09 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119656 |
| * interface.cc (gfc_compare_actual_formal): Fix front-end memleak |
| when searching for matching interfaces. |
| * trans-expr.cc (gfc_conv_procedure_call): If there is a formal |
| dummy corresponding to an absent argument, use its type, and only |
| fall back to inferred type otherwise. |
| |
| 2025-04-09 Paul Thomas <pault@gcc.gnu.org> |
| and Harald Anlauf <anlauf@gcc.gnu.org> |
| |
| PR fortran/119460 |
| * iresolve.cc (generate_reduce_op_wrapper): Increase the size |
| of 'tname'. Change intent of 'a' and 'b' to intent_in. |
| * trans-decl.cc (add_argument_checking): Do not test artificial |
| formal symbols. |
| * trans-expr.cc (gfc_conv_procedure_call): Remove reduce_scalar |
| and the blocks triggered by it. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_function): Set the |
| result of non-character, scalar reduce to be allocatable. |
| |
| 2025-04-09 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/101602 |
| * resolve.cc (resolve_locality_spec): Remove 'sorry, unimplemented'. |
| * trans-stmt.cc (struct symbol_and_tree_t): New. |
| (gfc_trans_concurrent_locality_spec): New. |
| (gfc_trans_forall_1): Call it; update to handle local and local_init. |
| * trans-decl.cc (gfc_start_saved_local_decls, |
| gfc_stop_saved_local_decls): New; moved code from ... |
| (gfc_process_block_locals): ... here. Call it. |
| * trans.h (gfc_start_saved_local_decls, |
| gfc_stop_saved_local_decls): Declare. |
| |
| 2025-04-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/118965 |
| * openmp.cc (gfc_parser_omp_clause_init_modifiers): Fix some |
| inconsistent code indentation. Remove code for recognizing |
| clauses without modifiers. Diagnose prefer_type without a |
| following paren. Adjust error message for an unrecognized modifier. |
| Diagnose missing target/targetsync modifier. |
| (gfc_match_omp_init): Fix more inconsistent code indentation. |
| |
| 2025-03-28 Harald Anlauf <anlauf@gmx.de> |
| |
| * check.cc (gfc_invalid_boz): Correct spelling of compiler flag in |
| hint to -fallow-invalid-boz. |
| |
| 2025-03-26 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/118796 |
| * resolve.cc: Do not apply default initialization to a derived-type |
| function result if the resolved function is use-associated. |
| |
| 2025-03-25 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119419 |
| * dump-parse-tree.cc (write_funptr_fcn): New function. |
| (write_type): Invoke it for C_FUNPTR. |
| (write_interop_decl): Do not dump vtabs. |
| |
| 2025-03-25 Sandra Loosemore <sloosemore@baylibre.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Remove accidental |
| redeclaration of pref. |
| |
| 2025-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * resolve.cc (resolve_procedure_expression): Remove extraneous space |
| from the middle of diagnostics. |
| |
| 2025-03-21 Paul-Antoine Arras <parras@baylibre.com> |
| Tobias Burnus <tburnus@baylibre.com> |
| |
| * trans-openmp.cc (gfc_trans_omp_clauses): Make OMP_CLAUSE_DESTROY and |
| OMP_CLAUSE_INIT addressable. |
| * types.def (BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR): |
| New. |
| |
| 2025-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/119406 |
| * resolve.cc (resolve_locality_spec): Add space in error |
| message. |
| |
| 2025-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/119403 |
| * interface.cc (compare_parameter): Fix typo. |
| |
| 2025-03-21 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/85836 |
| * check.cc (get_ul_from_cst_cl): New function used in |
| check_operation. |
| (check_operation): New function used in check_reduce and |
| check_co_reduce. |
| (gfc_check_co_reduce): Use it. |
| (gfc_check_reduce): New function. |
| (gfc_check_rename): Add prototype for intrinsic with 6 arguments. |
| * gfortran.h : Add isym id for reduce and prototype for f6. |
| * intrinsic.cc (do_check): Add another argument expression and use |
| it in the call to the six argument specific check. |
| (add_sym_6): New function. |
| (add_functions): Add the discription of the reduce intrinsic and |
| add it to the intrinsic list. |
| * intrinsic.h : Add prototypes for gfc_check_reduce and |
| gfc_resolve_reduce. |
| * iresolve.cc (generate_reduce_op_wrapper): Generate a wrapper |
| subroutine for the 'operation' function to enable the library |
| implementation to be type agnostic and use pointer arithmetic |
| throughout. |
| (gfc_resolve_reduce): New function. |
| * trans-expr.cc (gfc_conv_procedure_call): Add flag for scalar |
| reduce. Generate a return variable 'sr' for scalar reduce, pass its |
| address to the library function and return it as the scalar result. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_function): Array valued |
| reduce is called in same way as reshape. Fall through for call to |
| the scalar version. |
| |
| 2025-03-21 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/119380 |
| * trans-array.cc (structure_alloc_comps): Prevent freeing of |
| procedure pointer components. |
| |
| 2025-03-21 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/119349 |
| * trans-expr.cc (gfc_conv_procedure_call): Prevent deallocation |
| of array temporary for polymorphic temporary argument. |
| |
| 2025-03-19 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/116706 |
| * trans-array.cc (gfc_is_reallocatable_lhs): Fix check on |
| allocatable components of derived type or class objects. |
| |
| 2025-03-19 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/119272 |
| * resolve.cc (resolve_compcall): Postpone error report when |
| symbol is not resolved yet for component call resolve. |
| |
| 2025-03-18 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119338 |
| * resolve.cc (resolve_allocate_expr): Check F2003:C626: Type-spec |
| in ALLOCATE of an assumed-length character dummy argument shall be |
| an asterisk. |
| |
| 2025-03-16 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/60560 |
| * expr.cc (gfc_traverse_expr): Do not descend into length type |
| parameter for negative values of auxiliary parameter f. |
| * resolve.cc (gfc_find_var_in_expr): New helper function to check |
| dependence of an expression on given variable. |
| (resolve_allocate_expr): Use it to determine if array bounds in an |
| ALLOCATE statement depend explicitly on a variable. |
| |
| 2025-03-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/115271 |
| * module.cc (mio_omp_declare_simd_clauses): New, moved from ... |
| (mio_omp_declare_simd): ... here. Update call, write empty '( )' |
| if there is no declare simd but a declare variant. |
| (mio_omp_declare_variant): New. |
| (mio_symbol): Call it. |
| * openmp.cc (gfc_match_omp_context_selector): Add comment about |
| module.cc to TODO note. |
| * trans-stmt.h (gfc_trans_omp_declare_variant): Take additional |
| parent_ns argument. |
| * trans-decl.cc (create_function_arglist, |
| gfc_create_function_decl): Update call. |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Take new |
| argument, add some special case handling for attr.use_assoc. |
| |
| 2025-03-13 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119118 |
| * dependency.cc (contains_forall_index_p): Let loop over elements |
| of a constructor update its control variable. Handle REF_INQUIRY |
| in switch statement. |
| (gfc_contains_implied_index_p): Likewise. |
| |
| 2025-03-12 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/98903 |
| * array.cc (gfc_copy_array_ref): Copy team, team_type and stat. |
| (match_team_or_stat): Match a single team(_number)= or stat=. |
| (gfc_match_array_ref): Add switching to image_selector_parsing |
| and error handling when indices come after named arguments. |
| * coarray.cc (move_coarray_ref): Move also team_type. |
| * expr.cc (gfc_free_ref_list): Free team and stat expression. |
| (gfc_find_team_co): Find team or team_number in array-ref. |
| * gfortran.h (enum gfc_array_ref_team_type): New enum to |
| distinguish unset, team or team_number expression. |
| (gfc_find_team_co): Default searching to team= expressions. |
| * resolve.cc (resolve_array_ref): Check for type correctness of |
| team(_number) and stats in coindices. |
| * trans-array.cc (gfc_conv_array_ref): Ensure stat is cleared |
| when fcoarray=single is used. |
| * trans-intrinsic.cc (conv_stat_and_team): Including team_number |
| in conversion. |
| (gfc_conv_intrinsic_caf_get): Propagate team_number to ABI |
| routine. |
| (conv_caf_send_to_remote): Same. |
| (conv_caf_sendget): Same. |
| |
| 2025-03-11 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119199 |
| * decl.cc (gfc_match_save): Reject SAVE statement of a COMMON block |
| when in a BLOCK construct. |
| * trans-common.cc (translate_common): Avoid NULL pointer dereference. |
| |
| 2025-03-11 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119078 |
| * frontend-passes.cc (check_against_globals): Do not check |
| for abstract interfaces or dummy arguments. |
| * resolve.cc (gfc_verify_binding_labels): Adjust comment. |
| Do not put abstract interfaces or dummy argument into global |
| namespace. |
| |
| 2025-03-10 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107143 |
| * dependency.cc (check_data_pointer_types): Do not just compare |
| for derived type, but for same derived type. |
| |
| 2025-03-09 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119157 |
| * gfortran.h (gfc_pop_undo_symbol): Remove prototype. |
| * interface.cc (gfc_get_formal_from_actual_arglist): Use |
| gfc_commit_symbol() instead of gfc_pop_undo_symbol(). |
| * symbol.cc (gfc_pop_undo_symbol): Remove. |
| |
| 2025-03-08 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119157 |
| * gfortran.h (gfc_symbol): Make ext_dummy_arglist_mismatch a |
| one-bit bitfield |
| (gfc_pop_undo_symbol): Declare prototype. |
| * symbol.cc (gfc_pop_undo_symbol): New function. |
| * interface.cc (gfc_get_formal_from_actual_arglist): Call it |
| for artificially introduced formal variables. |
| |
| 2025-03-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/119054 |
| * resolve.cc (resolve_elemental_actual): When checking other |
| actual arguments to elemental procedures, don't check |
| attributes of literals and function calls. |
| |
| 2025-03-06 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/119118 |
| * dependency.cc (gfc_contains_implied_index_p): Helper function to |
| determine if an expression has a dependence on an implied-do index. |
| * dependency.h (gfc_contains_implied_index_p): Add prototype. |
| * trans-expr.cc (gfc_conv_substring): Adjust logic to not generate |
| substring bounds checks before implied-do indices have been |
| substituted. |
| |
| 2025-03-05 Mark Wielaard <mark@klomp.org> |
| |
| * lang.opt.urls: Regenerated. |
| |
| 2025-03-05 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/104684 |
| * trans-array.cc (gfc_conv_expr_descriptor): Look at the |
| lang-specific akind and do a view convert when only the akind |
| attribute differs between pointer and allocatable array. |
| |
| 2025-03-04 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/119049 |
| PR fortran/119074 |
| * dump-parse-tree.cc (seen_conflict): New static varaible. |
| (gfc_dump_external_c_prototypes): Initialize it. If it was |
| set, write out a warning that -std=c23 will not work. |
| (write_proc): Move the work of actually writing out the |
| formal arglist to... |
| (write_formal_arglist): New function. Handle external dummy |
| parameters and their argument lists. If there were mismatched |
| arguments, output an empty argument list in pre-C23 style. |
| * gfortran.h (struct gfc_symbol): Add ext_dummy_arglist_mismatch |
| flag and formal_at. |
| * invoke.texi: Document -Wexternal-argument-mismatch. |
| * lang.opt: Put it in. |
| * resolve.cc (resolve_function): If warning about external |
| argument mismatches, build a formal from actual arglist the |
| first time around, and later compare and warn. |
| (resolve_call): Likewise |
| |
| 2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/103391 |
| * trans-expr.cc (gfc_trans_assignment_1): Do not use poly assign |
| for pointer arrays on lhs (as it is done for allocatables |
| already). |
| |
| 2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/77872 |
| * trans-expr.cc (gfc_get_tree_for_caf_expr): Pick up token from |
| decl when it is present there for class types. |
| |
| 2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/77872 |
| * trans-expr.cc (gfc_conv_procedure_call): Use attr instead of |
| doing type check and branching for BT_CLASS. |
| |
| 2025-03-03 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/101577 |
| * symbol.cc (verify_bind_c_derived_type): Generate error message |
| for derived type with no components in standard conformance mode, |
| indicating that this is a GNU extension. |
| |
| 2025-03-03 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/118747 |
| * trans-array.cc (gfc_trans_array_ctor_element): Remove copy to |
| temporary variable. |
| * trans-expr.cc (gfc_conv_procedure_call): Use references to |
| array members instead of copies when freeing after use. |
| Formatting fix. |
| |
| 2025-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * intrinsic.texi: Fix inconsistent capitalization of argument |
| names and other minor copy-editing. |
| |
| 2025-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR fortran/47928 |
| * intrinsic.texi: Move the "Standard" subheading farther down. |
| |
| 2025-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR fortran/47928 |
| * gfortran.texi: Move all the "Syntax" subheadings ahead of |
| "Description", and rename to "Synopsis". |
| * intrinsic.texi: Likewise. |
| |
| 2025-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR fortran/47928 |
| * intrinsic.texi: Put a blank line between "@item @emph{}" |
| subheadings, but not more than one. |
| |
| 2025-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR fortran/47928 |
| * gfortran.texi: Consistently use "@emph{Notes}:" instead of |
| other spellings. |
| * intrinsic.texi: Likewise. Also fix an inconsistent capitalization |
| and remove a redundant "Standard" entry. |
| |
| 2025-03-01 Harald Anlauf <anlauf@gmx.de> |
| |
| * match.cc (gfc_match_nullify): Free matched expression when |
| cleaning up. |
| * primary.cc (match_variable): Initialize result to NULL. |
| |
| 2025-02-28 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/118730 |
| * resolve.cc: Mark unused derived type variable with finalizers |
| referenced to execute finalizer when leaving scope. |
| |
| 2025-02-27 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/118789 |
| * trans-stmt.cc (trans_associate_var): Compare pointed to types when |
| expr to associate is already a pointer. |
| |
| 2025-02-26 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/108233 |
| * trans-expr.cc (gfc_trans_assignment_1): Remove SAVE_EXPR on lhs. |
| |
| 2025-02-25 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * coarray.cc (fixup_comp_refs): For class types set correct |
| component (class) type. |
| (split_expr_at_caf_ref): Provide location. |
| * trans-intrinsic.cc (conv_caf_send_to_remote): Look at |
| generated formal argument and not declared one to detect |
| descriptor arrays. |
| (conv_caf_sendget): Same. |
| |
| 2025-02-25 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * trans-intrinsic.cc (conv_caf_sendget): Use the size of data |
| transferred between the two images and not the descritor's size. |
| |
| 2025-02-21 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/48958 |
| * trans-array.cc (gfc_trans_deferred_array): Initialize the data |
| component of non-saved pointers when -fcheck=pointer is set. |
| |
| 2025-02-21 Tobias Burnus <tburnus@baylibre.com> |
| |
| * trans-array.cc (gfc_full_array_size): Obtain the rank from |
| the array descriptor for assumed rank. |
| (gfc_tree_array_size): Likewise; permit expr = NULL to operate |
| only the tree. |
| (gfc_conv_descriptor_stride_get): Update for added assumed-rank |
| array types. |
| * trans-openmp.cc (gfc_omp_finish_clause): Likewise. |
| * trans-types.cc (gfc_build_array_type, gfc_get_derived_type, |
| gfc_get_array_descr_info): Likewise. |
| * trans.h (enum gfc_array_kind): Add |
| GFC_ARRAY_ASSUMED_RANK_{ALLOCATABLE,POINTER{,_CONT}}. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * gfortran.texi: Remove deprecated functions from documentation. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Remove |
| decprecated function decls. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_exponent): Remove |
| deprecated/no longer needed routines. |
| * trans.h: Remove unused decls. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * coarray.cc (rewrite_caf_send): Rewrite to |
| transfer_between_remotes when both sides of the assignment have |
| a coarray. |
| (coindexed_code_callback): Prevent duplicate rewrite. |
| * gfortran.texi: Add documentation for transfer_between_remotes. |
| * intrinsic.cc (add_subroutines): Add intrinsic symbol for |
| caf_sendget to allow easy rewrite to transfer_between_remotes. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Add |
| prototype for transfer_between_remotes. |
| * trans-intrinsic.cc (conv_caf_vector_subscript_elem): Mark as |
| deprecated. |
| (conv_caf_vector_subscript): Same. |
| (compute_component_offset): Same. |
| (conv_expr_ref_to_caf_ref): Same. |
| (conv_stat_and_team): Extract stat and team from expr. |
| (gfc_conv_intrinsic_caf_get): Use conv_stat_and_team. |
| (conv_caf_send_to_remote): Same. |
| (has_ref_after_cafref): Mark as deprecated. |
| (conv_caf_sendget): Translate to transfer_between_remotes. |
| * trans.h: Add prototype for transfer_between_remotes. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * coarray.cc (move_coarray_ref): Move the coarray reference out |
| of the given one. Especially when there is a regular array ref. |
| (fixup_comp_refs): Move components refs to a derived type where |
| the codim has been removed, aka a new type. |
| (split_expr_at_caf_ref): Correctly split the reference chain. |
| (remove_caf_ref): Simplify. |
| (create_get_callback): Fix some deficiencies. |
| (create_allocated_callback): Adapt to new signature of split. |
| (create_send_callback): New function. |
| (rewrite_caf_send): Rewrite a call to caf_send to |
| caf_send_to_remote. |
| (coindexed_code_callback): Treat caf_send and caf_sendget |
| correctly. |
| * gfortran.h (enum gfc_isym_id): Add SENDGET-isym. |
| * gfortran.texi: Add documentation for send_to_remote. |
| * resolve.cc (gfc_resolve_code): No longer generate send_by_ref |
| when allocatable coarray (component) is on the lhs. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Add |
| caf_send_to_remote decl. |
| * trans-intrinsic.cc (conv_caf_func_index): Ensure the static |
| variables created are not in a block-scope. |
| (conv_caf_send_to_remote): Translate caf_send_to_remote calls. |
| (conv_caf_send): Renamed to conv_caf_sendget. |
| (conv_caf_sendget): Renamed from conv_caf_send. |
| (gfc_conv_intrinsic_subroutine): Branch correctly for |
| conv_caf_send and sendget. |
| * trans.h: Correct decl. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * coarray.cc (create_allocated_callback): Add creating remote |
| side procedure for checking allocation status of coarray. |
| (rewrite_caf_allocated): Rewrite ALLOCATED on coarray to use caf |
| routine. |
| (coindexed_expr_callback): Exempt caf_is_present_on_remote from |
| being rewritten again. |
| * gfortran.h (enum gfc_isym_id): Add caf_is_present_on_remote |
| id. |
| * gfortran.texi: Add documentation for caf_is_present_on_remote. |
| * intrinsic.cc (add_functions): Add caf_is_present_on_remote |
| symbol. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Define |
| interface of caf_is_present_on_remote. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote): |
| Translate caf_is_present_on_remote. |
| (trans_caf_is_present): Remove. |
| (caf_this_image_ref): Remove. |
| (gfc_conv_allocated): Take out coarray treatment, because that |
| is rewritten to caf_is_present_on_remote now. |
| (gfc_conv_intrinsic_function): Handle caf_is_present_on_remote |
| calls. |
| * trans.h: Add symbol for caf_is_present_on_remote and remove |
| old one. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * coarray.cc (get_arrayspec_from_expr): Treat array result of |
| function calls correctly. |
| (remove_coarray_from_derived_type): Prevent memory loss. |
| (add_caf_get_from_remote): Correct locus. |
| (find_comp): New function to find or create a new component in a |
| derived type. |
| (check_add_new_comp_handle_array): Handle allocatable arrays or |
| non-pure/non-elemental functions in indexes of coarrays. |
| (check_add_new_component): Use above function. |
| (create_get_parameter_type): Rename to |
| create_caf_add_data_parameter_type. |
| (create_caf_add_data_parameter_type): Renaming of variable and |
| make the additional data a coarray. |
| (remove_caf_ref): Factor out to reuse in other caf-functions. |
| (create_get_callback): Use function factored out, set locus |
| correctly and ensure a kind is set for parameters. |
| (add_caf_get_intrinsic): Rename to add_caf_get_from_remote and |
| rename some variables. |
| (coindexed_expr_callback): Skip over function created by the |
| rewriter. |
| (coindexed_code_callback): Filter some intrinsics not to |
| process. |
| (gfc_coarray_rewrite): Rewrite also contained functions. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): Reflect |
| changed order on caf_get_from_remote (). |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * gfortran.texi: Rename caf_get_by_ct to caf_get_from_remote. |
| * trans-decl.cc (gfc_build_builtin_function_decls): Rename |
| intrinsic. |
| * trans-intrinsic.cc (conv_caf_func_index): Factor out |
| functionality to be reused by other caf-functions. |
| (conv_caf_add_call_data): Same. |
| (gfc_conv_intrinsic_caf_get): Use functions factored out. |
| * trans.h: Rename intrinsic symbol. |
| |
| 2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/107635 |
| * Make-lang.in: Add coarray.cc. |
| * coarray.cc: New file. |
| * gfortran.h (gfc_coarray_rewrite): New procedure. |
| * parse.cc (rewrite_expr_tree): Add entrypoint for rewriting |
| expression trees. |
| * resolve.cc (gfc_resolve_ref): Remove caf_lhs handling. |
| (get_arrayspec_from_expr): Moved to rewrite.cc. |
| (remove_coarray_from_derived_type): Same. |
| (convert_coarray_class_to_derived_type): Same. |
| (split_expr_at_caf_ref): Same. |
| (check_add_new_component): Same. |
| (create_get_parameter_type): Same. |
| (create_get_callback): Same. |
| (add_caf_get_intrinsic): Same. |
| (resolve_variable): Remove caf_lhs handling. |
| |
| 2025-02-17 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/115271 |
| * gfortran.h (gfc_omp_namelist): Change need_device_ptr to adj_args |
| union and add more flags. |
| * openmp.cc (gfc_match_omp_declare_variant, |
| gfc_resolve_omp_declare): For adjust_args, handle need_device_addr |
| and numeric values/ranges besides dummy argument names. |
| (resolve_omp_dispatch): Remove bogus a adjust_args check. |
| * trans-decl.cc (gfc_handle_omp_declare_variant): New. |
| (gfc_generate_module_vars, gfc_generate_function_code): Call it. |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle numeric |
| values/ranges besides dummy argument names. |
| |
| 2025-02-17 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/118862 |
| * trans-expr.cc (gfc_conv_cst_int_power): Use functions for |
| unsigned wide integer. |
| (gfc_conv_cst_uint_power): Avoid generating the mask if it would |
| overflow an unsigned HOST_WIDE_INT. Format fixes. |
| |
| 2025-02-16 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * dump-parse-tree.cc (show_attr): Remove double output |
| of attr->save. |
| |
| 2025-02-15 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/118080 |
| * gfortran.texi: Adjust documentation. |
| * trans-decl.cc (create_function_arglist): Adjust to pass hidden |
| presence flag also for derived type dummies with VALUE,OPTIONAL |
| attribute. |
| * trans-expr.cc (gfc_conv_expr_present): Expect hidden presence |
| flag also for derived type dummies with VALUE,OPTIONAL attribute. |
| (conv_cond_temp): Adjust to allow derived types. |
| (conv_dummy_value): Extend to handle derived type dummies with |
| VALUE,OPTIONAL attribute. |
| (gfc_conv_procedure_call): Adjust for actual arguments passed to |
| derived type dummies with VALUE,OPTIONAL attribute. |
| * trans-types.cc (gfc_get_function_type): Adjust fndecl for |
| hidden presence flag. |
| |
| 2025-02-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/117430 |
| * resolve.cc (resolve_transfer): Change gfc_notify_std to |
| gfc_error. |
| |
| 2025-02-15 Andrew Pinski <pinskia@gcc.gnu.org> |
| |
| PR fortran/118159 |
| * invoke.texi: Remove mention of defunct web site for Coco. |
| |
| 2025-02-15 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * frontend-passes.cc (check_externals_procedure): Copy |
| typespec from old to new symbol. |
| |
| 2025-02-13 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/118845 |
| * interface.cc (compare_parameter): If the formal attribute has been |
| generated from an actual argument list, also output an pointer to |
| there in case of an error. |
| (gfc_get_formal_from_actual_arglist): Set function and subroutine |
| attributes and (if it is a function) the typespec from the actual |
| argument. |
| |
| 2025-02-11 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Update call to |
| omp_check_context_selector. |
| (gfc_trans_omp_metadirective): Likewise. |
| |
| 2025-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/24878 |
| * interface.cc (compare_parameter): Better wording on |
| error message. |
| |
| 2025-02-10 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/56423 |
| * resolve.cc (resolve_structure_cons): Check rank of pointer target; |
| reject pointer target with vector subscripts. |
| |
| 2025-02-09 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/24878 |
| * interface.cc (compare_parameter): Check global subroutines |
| passed as actual arguments for subroutine / function and |
| function type. |
| |
| 2025-02-08 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/107067 |
| * parse.cc (parse_omp_do): Diagnose missing "OMP END METADIRECTIVE" |
| after loop. |
| (parse_omp_structured_block): Likewise for strictly structured block. |
| (parse_omp_metadirective_body): Use better test for variants ending |
| at different places. Issue a user diagnostic at the end if any |
| were inconsistent, instead of calling gcc_assert. |
| |
| 2025-02-07 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/59252 |
| * trans-expr.cc (gfc_trans_subcomponent_assign): Initialize |
| allocatable non-deferred character with NULL properly. |
| |
| 2025-02-07 Tomáš Trnka <trnka@scm.com> |
| |
| PR fortran/116829 |
| * trans-decl.cc (init_intent_out_dt): Always call |
| gfc_init_default_dt() for BT_DERIVED to apply s->value if the |
| symbol isn't allocatable. Also simplify the logic a bit. |
| |
| 2025-02-06 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/118750 |
| * resolve.cc (resolve_assoc_var): If the target expression has |
| a rank, do not use gfc_expression_rank, since it will return 0 |
| if the function is elemental. Resolution will have produced the |
| correct rank. |
| |
| 2025-02-05 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/118740 |
| * openmp.cc (gfc_match_omp_context_selector, match_omp_metadirective): |
| Change sorry to sorry_at and use gfc_current_locus as location. |
| * trans-openmp.cc (gfc_trans_omp_clauses): Likewise, but use n->where. |
| |
| 2025-02-05 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/118745 |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Use |
| append_args_list in the condition for the append_arg location. |
| |
| 2025-02-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| PR fortran/47485 |
| * cpp.cc: fix -MT/-MQ adding additional target instead of |
| replacing the default. |
| |
| 2025-02-04 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * arith.cc (arith_power): Handle modular arithmetic for |
| BT_UNSIGNED. |
| (eval_intrinsic): Error for unsigned exponentiation with |
| -pedantic. |
| * expr.cc (gfc_type_convert_binary): Use type of first |
| argument for unsigned exponentiation. |
| * gfortran.texi: Mention arithmetic exponentiation. |
| * resolve.cc (resolve_operator): Allow unsigned exponentiation. |
| * trans-decl.cc (gfc_build_intrinsic_function_decls): Build |
| declarations for unsigned exponentiation. |
| * trans-expr.cc (gfc_conv_cst_uint_power): New function. |
| (gfc_conv_power_op): Call it. Handle unsigned exponentiation. |
| * trans.h (gfor_fndecl_unsigned_pow_list): Add declaration. |
| |
| 2025-02-03 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/93289 |
| * decl.cc (gfc_set_constant_character_len): Downgrade different |
| string lengths in character array constructor to legacy extension. |
| |
| 2025-01-31 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/108454 |
| * resolve.cc (resolve_common_blocks): Initialize variable. |
| (resolve_symbol): If a symbol is already registered with a COMMON |
| block, do not search for an interface with the same name. |
| |
| 2025-01-31 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR fortran/118714 |
| * parse.cc (parse_omp_dispatch): Add missing pop_state. |
| |
| 2025-01-30 Sandra Loosemore <sloosemore@baylibre.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| Tobias Burnus <tobias@codesourcery.com> |
| Paul-Antoine Arras <pa@codesourcery.com> |
| |
| PR middle-end/112779 |
| PR middle-end/113904 |
| * decl.cc (gfc_match_end): Handle COMP_OMP_BEGIN_METADIRECTIVE and |
| COMP_OMP_METADIRECTIVE. |
| * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE. |
| (show_code_node): Likewise. |
| * gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE, |
| ST_OMP_BEGIN_METADIRECTIVE, and ST_OMP_END_METADIRECTIVE. |
| (struct gfc_omp_clauses): Rename target_first_st_is_teams to |
| target_first_st_is_teams_or_meta. |
| (struct gfc_omp_variant): New. |
| (gfc_get_omp_variant): New. |
| (struct gfc_st_label): Add omp_region field. |
| (enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE. |
| (struct gfc_code): Add omp_variants fields. |
| (gfc_free_omp_variants): Declare. |
| (match_omp_directive): Declare. |
| (is_omp_declarative_stmt): Declare. |
| * io.cc (format_asterisk): Adjust initializer. |
| * match.h (gfc_match_omp_begin_metadirective): Declare. |
| (gfc_match_omp_metadirective): Declare. |
| * openmp.cc (gfc_omp_directives): Uncomment metadirective. |
| (gfc_match_omp_eos): Adjust to match context selectors. |
| (gfc_free_omp_variants): New. |
| (gfc_match_omp_clauses): Remove context_selector parameter and adjust |
| to use gfc_match_omp_eos instead. |
| (match_omp): Adjust call to gfc_match_omp_clauses. |
| (gfc_match_omp_context_selector): Add metadirective_p parameter and |
| adjust error-checking. Adjust matching of simd clauses. |
| (gfc_match_omp_context_selector_specification): Adjust parameters |
| so it can be used for metadirective as well as declare variant. |
| (match_omp_metadirective): New. |
| (gfc_match_omp_begin_metadirective): New. |
| (gfc_match_omp_metadirective): New. |
| (resolve_omp_metadirective): New. |
| (resolve_omp_target): Handle metadirectives. |
| (gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE. |
| * parse.cc (gfc_matching_omp_context_selector): New. |
| (gfc_in_omp_metadirective_body): New. |
| (gfc_omp_region_count): New. |
| (decode_omp_directive): Handle ST_OMP_BEGIN_METADIRECTIVE and |
| ST_OMP_METADIRECTIVE. |
| (match_omp_directive): New. |
| (case_omp_structured_block): Define. |
| (case_omp_do): Define. |
| (gfc_ascii_statement): Handle ST_OMP_BEGIN_METADIRECTIVE, |
| ST_OMP_END_METADIRECTIVE, and ST_OMP_METADIRECTIVE. |
| (accept_statement): Handle ST_OMP_METADIRECTIVE and |
| ST_OMP_BEGIN_METADIRECTIVE. |
| (gfc_omp_end_stmt): New, split from... |
| (parse_omp_do): ...here, and... |
| (parse_omp_structured_block): ...here. Handle metadirectives, |
| plus "allocate", "atomic", and "dispatch" which were missing. |
| (parse_omp_oacc_atomic): Handle "end metadirective". |
| (parse_openmp_allocate_block): Likewise. |
| (parse_omp_dispatch): Likewise. |
| (parse_omp_metadirective_body): New. |
| (parse_executable): Handle metadirective. Use new case macros |
| defined above. |
| (gfc_parse_file): Initialize metadirective state. |
| (is_omp_declarative_stmt): New. |
| * parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE |
| and COMP_OMP_BEGIN_METADIRECTIVE. |
| (gfc_omp_end_stmt): Declare. |
| (gfc_matching_omp_context_selector): Declare. |
| (gfc_in_omp_metadirective_body): Declare. |
| (gfc_omp_metadirective_region_count): Declare. |
| * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE. |
| * st.cc (gfc_free_statement): Likewise. |
| * symbol.cc (compare_st_labels): Handle labels within a metadirective |
| body. |
| (gfc_get_st_label): Likewise. |
| * trans-decl.cc (gfc_get_label_decl): Encode the metadirective region |
| in the label_name. |
| * trans-openmp.cc (gfc_trans_omp_directive): Handle |
| EXEC_OMP_METADIRECTIVE. |
| (gfc_trans_omp_set_selector): New, split/adapted from code.... |
| (gfc_trans_omp_declare_variant): ...here. |
| (gfc_trans_omp_metadirective): New. |
| * trans-stmt.h (gfc_trans_omp_metadirective): Declare. |
| * trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE. |
| |
| 2025-01-30 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gfortran.h (gfc_omp_declare_variant): Add append_args_list. |
| * openmp.cc (gfc_parser_omp_clause_init_modifiers): New; |
| splitt of from ... |
| (gfc_match_omp_init): ... here; call it. |
| (gfc_match_omp_declare_variant): Update to handle append_args |
| clause; some syntax handling fixes. |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle |
| append_args clause; add some diagnostic. |
| |
| 2025-01-29 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/118683 |
| * trans-expr.cc (gfc_conv_procedure_call): The bounds update for |
| passing to assumed-rank dummies shall also handle component |
| references besides inquiry references. |
| |
| 2025-01-27 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/110993 |
| * frontend-passes.cc (check_externals_procedure): Do not compare |
| interfaces of a non-bind(C) procedure against a bind(C) global one. |
| (check_against_globals): Use local name from rename-on-use in the |
| search for interfaces. |
| |
| 2025-01-27 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/118640 |
| * resolve.cc (generate_component_assignments): Make sure that |
| the rhs temporary does not pick up the optional attribute from |
| the lhs. |
| |
| 2025-01-26 Tobias Burnus <tburnus@baylibre.com> |
| |
| * openmp.cc (gfc_omp_directives): Uncomment unroll and tile lines |
| as the directives are by now implemented. |
| |
| 2025-01-26 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * openmp.cc (resolve_omp_atomic): Fix typo in error message. |
| |
| 2025-01-25 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/58857 |
| * class.cc (gfc_find_derived_vtab): Declare some frontend generated |
| variables and procedures (_vtab, _copy, _deallocate) as artificial. |
| (find_intrinsic_vtab): Likewise. |
| * trans-decl.cc (check_block_data_decls): New helper function. |
| (gfc_generate_block_data): Use it to emit warnings for variables |
| declared in a BLOCK DATA program unit but not in a COMMON block. |
| |
| 2025-01-23 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/118613 |
| * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxval): Adjust algorithm |
| for inlined version of MINLOC and MAXLOC so that arguments are only |
| evaluted once, and create temporaries where necessary. Document |
| change of algorithm. |
| |
| 2025-01-23 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/96087 |
| * trans-decl.cc (gfc_get_symbol_decl): If a dummy is missing a |
| backend decl, it is likely that it has come from a module proc |
| interface. Look for the formal symbol by name in the containing |
| proc and use its backend decl. |
| * trans-expr.cc (gfc_apply_interface_mapping_to_expr): For the |
| same reason, match the name, rather than the symbol address to |
| perform the mapping. |
| |
| 2025-01-20 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/107122 |
| * openmp.cc (resolve_omp_clauses): Add 'with' to error message text. |
| |
| 2025-01-20 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/81978 |
| * trans-array.cc (gfc_conv_array_parameter): Do not copy back data |
| if actual array parameter has the PARAMETER attribute. |
| * trans-expr.cc (gfc_conv_subref_array_arg): Likewise. |
| |
| 2025-01-16 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/118321 |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Honor hidden |
| arguments for append_arg's need_device_ptr. |
| |
| 2025-01-16 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/118359 |
| * dump-parse-tree.cc (show_external_symbol): New function. |
| (write_type): Add prototype, put in restrictions on what not to dump. |
| (has_cfi_cdesc): New function. |
| (need_iso_fortran_binding): New function. |
| (gfc_dump_c_prototypes): Adjust to take only a file output. Add |
| "#include <ISO_Fortran_binding.h" if CFI_cdesc_t is found. |
| Traverse global namespaces to dump types and the globalsymol list |
| to dump external symbols. |
| (gfc_dump_external_c_prototypes): Traverse global namespaces. |
| (get_c_type_name): Handle CFI_cdesc_t. |
| (write_proc): Also pass array spec to get_c_type_name. |
| * gfortran.h (gfc_dump_c_prototypes): Adjust prototype. |
| * parse.cc (gfc_parse_file): Adjust call to gfc_dump_c_prototypes. |
| |
| 2025-01-16 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * openmp.cc (gfc_omp_absent_contains_clause): Use an Oxford comma |
| in the message. |
| |
| 2025-01-16 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/118441 |
| * trans-intrinsic.cc (gfc_get_symbol_for_expr): Use |
| gfc_new_charlen for character-returning functions. |
| |
| 2025-01-15 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/71884 |
| * resolve.cc (resolve_allocate_expr): Reject intrinsic NULL as |
| source-expr. |
| |
| 2025-01-14 Sandra Loosemore <sloosemore@baylibre.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| Marcel Vollweiler <marcel@codesourcery.com> |
| |
| PR middle-end/114596 |
| PR middle-end/112779 |
| PR middle-end/113904 |
| * trans-openmp.cc (gfc_trans_omp_declare_variant): Update for changes |
| to omp-general.h interfaces. |
| |
| 2025-01-14 Anuj Mohite <anujmohite001@gmail.com> |
| |
| * dump-parse-tree.cc (show_code_node): Updated to use |
| c->ext.concur.forall_iterator instead of c->ext.forall_iterator. |
| * frontend-passes.cc (index_interchange): Updated to |
| use c->ext.concur.forall_iterator instead of c->ext.forall_iterator. |
| (gfc_code_walker): Likewise. |
| * gfortran.h (enum locality_type): Added new enum for locality types |
| in DO CONCURRENT constructs. |
| * match.cc (match_simple_forall): Updated to use |
| new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator. |
| (gfc_match_forall): Likewise. |
| (gfc_match_do): Implemented support for matching DO CONCURRENT locality |
| specifiers (LOCAL, LOCAL_INIT, SHARED, DEFAULT(NONE), and REDUCE). |
| * parse.cc (parse_do_block): Updated to use |
| new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator. |
| * resolve.cc (struct check_default_none_data): Added struct |
| check_default_none_data. |
| (do_concur_locality_specs_f2023): New function to check compliance |
| with F2023's C1133 constraint for DO CONCURRENT. |
| (check_default_none_expr): New function to check DEFAULT(NONE) |
| compliance. |
| (resolve_locality_spec): New function to resolve locality specs. |
| (gfc_count_forall_iterators): Updated to use |
| code->ext.concur.forall_iterator. |
| (gfc_resolve_forall): Updated to use code->ext.concur.forall_iterator. |
| * st.cc (gfc_free_statement): Updated to free locality specifications |
| and use p->ext.concur.forall_iterator. |
| * trans-stmt.cc (gfc_trans_forall_1): Updated to use |
| code->ext.concur.forall_iterator. |
| |
| 2025-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * dump-parse-tree.cc (show_attr): Fix typos for in_equivalence. |
| |
| 2025-01-13 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * openmp.cc (gfc_match_omp_declare_variant): Match comma after directive |
| name and between clauses. Emit more useful diagnostics. |
| |
| 2025-01-12 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * dump-parse-tree.cc (show_attr): Dump all symbol attributes. |
| |
| 2025-01-12 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/115788 |
| * check.cc (gfc_check_out_of_range): Check arguments to intrinsic. |
| * expr.cc (free_expr0): Fix a memleak with unsigned literals. |
| * gfortran.h (enum gfc_isym_id): Define GFC_ISYM_OUT_OF_RANGE. |
| * gfortran.texi: Add OUT_OF_RANGE to list of intrinsics supporting |
| UNSIGNED. |
| * intrinsic.cc (add_functions): Add Fortran prototype. Break some |
| nearby lines with excessive length. |
| * intrinsic.h (gfc_check_out_of_range): Add prototypes. |
| * intrinsic.texi: Fortran documentation of OUT_OF_RANGE. |
| * simplify.cc (gfc_simplify_out_of_range): Compile-time simplification |
| of OUT_OF_RANGE. |
| * trans-intrinsic.cc (gfc_conv_intrinsic_out_of_range): Generate |
| inline expansion of runtime code for OUT_OF_RANGE. |
| (gfc_conv_intrinsic_function): Use it. |
| |
| 2025-01-12 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/118432 |
| * frontend-passes.cc (doloop_code): Select correct member |
| of co->ext.union for inquire. |
| |
| 2025-01-11 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gfortran.h: Add OMP_LIST_INTEROP to the unnamed OMP_LIST_ enum. |
| * openmp.cc (gfc_match_omp_variable_list): Add reverse_order |
| boolean argument, defaulting to false. |
| (enum omp_mask2, OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_INTEROP. |
| (gfc_match_omp_clauses, resolve_omp_clauses): Handle dispatch's |
| 'interop' clause. |
| * trans-decl.cc (gfc_get_extern_function_decl): Use sym->declared_at |
| instead input_location as DECL_SOURCE_LOCATION. |
| * trans-openmp.cc (gfc_trans_omp_clauses): Handle OMP_LIST_INTEROP. |
| |
| 2025-01-11 Paul Thomas <pault@gcc.gnu.org> |
| |
| PR fortran/108434 |
| * class.cc (generate_finalization_wrapper): To avoid memory |
| leaks from callocs, return immediately if the derived type |
| error flag is set. |
| * decl.cc (build_struct): If the declaration of a derived type |
| or class component does not have a deferred arrayspec, correct, |
| set the error flag of the derived type and emit an immediate |
| error. |
| |
| 2025-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/118337 |
| * module.cc (use_iso_fortran_env_module): Add a comment explaining |
| the optimization performed. Add gcc_checking_assert that i was |
| incremented for all the elements. Formatting fix. |
| |
| 2025-01-09 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/118337 |
| * resolve.cc (resolve_fl_derived0): Exempt vtypes from cycle |
| detection. |
| |
| 2025-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/118337 |
| * module.cc (COMPAT_MOD_VERSIONS): Define. |
| (use_iso_fortran_env_module): Don't assume all NAMED_INTCSTs come |
| first followed by NAMED_UINTCSTs. |
| (gfc_use_module): Accept also COMPAT_MOD_VERSIONS for compatibility. |
| * iso-c-binding.def: Reorder entries so that the GCC 14 ones come |
| before the ones new in GCC 15. |
| * iso-fortran-env.def: Likewise. |
| |
| 2025-01-09 Tobias Burnus <tburnus@baylibre.com> |
| |
| * types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add. |
| |
| 2025-01-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/118337 |
| * module.cc (MOD_VERSION): Bump to "16". |
| |
| 2025-01-07 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * intrinsic.texi (ISO_FORTRAN_ENV): Also mention INT8 in the |
| text. Document UINT8, UINT16, UINT32 and UINT64. |
| (ISO_C_BINDING): New table for unsigned KIND numbers. |
| |
| 2025-01-07 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/114612 |
| * trans-array.cc (structure_alloc_comps): Ensure deep copy is |
| also done for types having cycles. |
| |
| 2025-01-07 Andre Vehreschild <vehre@gcc.gnu.org> |
| |
| PR fortran/116669 |
| * class.cc (gfc_find_derived_vtab): Use attr to determine cyclic |
| type dependendies. |
| * expr.cc (gfc_has_default_initializer): Prevent endless |
| recursion by storing already visited derived types. |
| * resolve.cc (resolve_cyclic_derived_type): Determine if a type |
| is used in its hierarchy in a cyclic way. |
| (resolve_fl_derived0): Call resolve_cyclic_derived_type. |
| (resolve_fl_derived): Ensure vtab is generated when cyclic |
| derived types have allocatable components. |
| * trans-array.cc (structure_alloc_comps): Prevent endless loop |
| for derived type cycles. |
| * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token): |
| Off topic, just prevent memory leaks. |
| |
| 2025-01-03 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| * gfortran.texi: New subsection "Generating C prototypes from |
| Fortran". |
| |
| 2025-01-03 Harald Anlauf <anlauf@gmx.de> |
| |
| PR fortran/106692 |
| * trans-expr.cc (gfc_conv_expr_op): Inhibit excessive optimization |
| of Cray pointers by treating them as volatile in comparisons. |
| |
| 2025-01-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * intrinsic.texi (ATAN): Add missing verb. |
| |
| 2025-01-02 Tobias Burnus <tburnus@baylibre.com> |
| |
| * openmp.cc (OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_HAS_DEVICE_ADDR. |
| |
| 2025-01-02 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext |
| clauses. |
| (show_omp_node): Handle EXEC_OMP_DISPATCH. |
| (show_code_node): Likewise. |
| * frontend-passes.cc (gfc_code_walker): Handle novariants and nocontext. |
| * gfortran.h (enum gfc_statement): Add ST_OMP_DISPATCH. |
| (symbol_attribute): Add omp_declare_variant_need_device_ptr. |
| (gfc_omp_clauses): Add novariants and nocontext. |
| (gfc_omp_declare_variant): Add need_device_ptr_arg_list. |
| (enum gfc_exec_op): Add EXEC_OMP_DISPATCH. |
| * match.h (gfc_match_omp_dispatch): Declare. |
| * openmp.cc (gfc_free_omp_clauses): Free novariants and nocontext |
| clauses. |
| (gfc_free_omp_declare_variant_list): Free need_device_ptr_arg_list |
| namelist. |
| (enum omp_mask2): Add OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT. |
| (gfc_match_omp_clauses): Handle OMP_CLAUSE_NOVARIANTS and |
| OMP_CLAUSE_NOCONTEXT. |
| (OMP_DISPATCH_CLAUSES): Define. |
| (gfc_match_omp_dispatch): New function. |
| (gfc_match_omp_declare_variant): Parse adjust_args. |
| (resolve_omp_clauses): Handle adjust_args, novariants and nocontext. |
| Adjust handling of OMP_LIST_IS_DEVICE_PTR. |
| (icode_code_error_callback): Handle EXEC_OMP_DISPATCH. |
| (omp_code_to_statement): Likewise. |
| (resolve_omp_dispatch): New function. |
| (gfc_resolve_omp_directive): Handle EXEC_OMP_DISPATCH. |
| * parse.cc (decode_omp_directive): Match dispatch. |
| (next_statement): Handle ST_OMP_DISPATCH. |
| (gfc_ascii_statement): Likewise. |
| (parse_omp_dispatch): New function. |
| (parse_executable): Handle ST_OMP_DISPATCH. |
| * resolve.cc (gfc_resolve_blocks): Handle EXEC_OMP_DISPATCH. |
| * st.cc (gfc_free_statement): Likewise. |
| * trans-decl.cc (create_function_arglist): Declare. |
| (gfc_get_extern_function_decl): Call it. |
| * trans-openmp.cc (gfc_trans_omp_clauses): Handle novariants and |
| nocontext. |
| (replace_omp_dispatch_call): New function. |
| (gfc_trans_omp_dispatch): New function. |
| (gfc_trans_omp_directive): Handle EXEC_OMP_DISPATCH. |
| (gfc_trans_omp_declare_variant): Handle adjust_args. |
| * trans.cc (trans_code): Handle EXEC_OMP_DISPATCH:. |
| |
| 2025-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. |
| |
| 2025-01-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gfortran.texi (Function ABI Documentation): Make menu ordering |
| consistent with subsection ordering. |
| |
| 2025-01-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gfortran.texi: Clean up that/which usage throughout the file. |
| * intrinsic.texi: Likewise. |
| * invoke.texi: Likewise. |
| |
| 2025-01-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * intrinsic.texi: Grammar and markup fixes throughout |
| the file. |
| |
| Copyright (C) 2025 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. |