| 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. |