diff options
Diffstat (limited to 'gcc/fortran/ChangeLog')
-rw-r--r-- | gcc/fortran/ChangeLog | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 56325a9..7c6a415 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,220 @@ +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 |