Dear all, as requested.Attached is the first of the series of 13 patches which implements a new shared memory library -lcaf_shmem. All 13 patches should be applied before attempting to build and test. The change log entries provide explanation as well as the changes to invoke.texi
Previously identified locking and syncing issues are fixed by patches 11 and 12. Changes to the configuration and regeneration files are grouped in patch 13. Please review. Best regards, Jerry
commit 865b386934dec3b8dd2afffc637f3be78f2bc65d Author: Andre Vehreschild <[email protected]> Date: Fri Apr 25 14:37:47 2025 +0200 Fortran: Unify check of teams parameter in failed/stopped_images(). gcc/fortran/ChangeLog: * check.cc (gfc_check_failed_or_stopped_images): Support teams argument and check for incorrect type. gcc/testsuite/ChangeLog: * gfortran.dg/coarray/failed_images_1.f08: Adapt check of error message. * gfortran.dg/coarray/stopped_images_1.f08: Same. diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index 4a4e1a8d21d..2dad9c77d30 100644 --- a/gcc/fortran/check.cc +++ b/gcc/fortran/check.cc @@ -1911,13 +1911,8 @@ gfc_check_f_c_string (gfc_expr *string, gfc_expr *asis) bool gfc_check_failed_or_stopped_images (gfc_expr *team, gfc_expr *kind) { - if (team) - { - gfc_error ("%qs argument of %qs intrinsic at %L not yet supported", - gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic, - &team->where); - return false; - } + if (team && (!scalar_check (team, 0) || !team_type_check (team, 0))) + return false; if (kind) { diff --git a/gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08 b/gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08 index 4898dd8a7a2..34ae131d15f 100644 --- a/gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08 +++ b/gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08 @@ -8,7 +8,7 @@ program test_failed_images_1 integer :: i fi = failed_images() ! OK - fi = failed_images(TEAM=1) ! { dg-error "'team' argument of 'failed_images' intrinsic at \\(1\\) not yet supported" } + fi = failed_images(TEAM=1) ! { dg-error "'team' argument of 'failed_images' intrinsic at \\(1\\) shall be of type 'team_type' from the intrinsic module 'ISO_FORTRAN_ENV'" } fi = failed_images(KIND=1) ! OK fi = failed_images(KIND=4) ! OK fi = failed_images(KIND=0) ! { dg-error "'kind' argument of 'failed_images' intrinsic at \\\(1\\\) must be positive" } diff --git a/gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08 b/gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08 index 403de585b9a..7658e6bb6bb 100644 --- a/gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08 +++ b/gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08 @@ -8,7 +8,7 @@ program test_stopped_images_1 integer :: i gi = stopped_images() ! OK - gi = stopped_images(TEAM=1) ! { dg-error "'team' argument of 'stopped_images' intrinsic at \\(1\\) not yet supported" } + gi = stopped_images(TEAM=1) ! { dg-error "'team' argument of 'stopped_images' intrinsic at \\(1\\) shall be of type 'team_type' from the intrinsic module 'ISO_FORTRAN_ENV'" } gi = stopped_images(KIND=1) ! OK gi = stopped_images(KIND=4) ! OK gi = stopped_images(KIND=0) ! { dg-error "'kind' argument of 'stopped_images' intrinsic at \\\(1\\\) must be positive" }
