aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/ChangeLog')
-rw-r--r--gcc/fortran/ChangeLog217
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