[PATCH 1/22] Coarray caf_shmem final patch set
Jerry D <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
Here is my ready to go status. Regression tested on Darwin, linux x86_64, FreeBSD. $ git status On branch master Your branch is ahead of 'origin/master' by 22 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean Summary list: $ git log --oneline -n 22 5da4bdb1d92 (HEAD -> master) Fortran: Use -pthread on target *-*-freebsd* ea88621d7a0 Fortran: Regenerate autoconf/automake files. 8ab8ef18a57 Fortran: Make caf_shmem build pthread presence aware. 8e10c6477c0 Fortran: Fix run time failures when compiled with -m32 b6c47d9cebe Fortran: Cleanup documentation for coarray -lcaf_shmem. e9bf5e7e8aa Fortran: Add new testcase for PR121360 8c9507475be Fortran: Adjust test to work with multiple images. 9db159f5a09 Fortran: Fix coarray shared mem [PR121429] 37ab61c2725 Fortran: Fix form team in caf_shmem [PR124071] 555e89a7774 Fortran: Add a shared memory coarray implementation [PR88076] 276d24b5d99 Fortran: Ensure constant strings are sent correctly to caf. 6efe898d9fd Fortran: Fix coarray assignment when rhs is complicated. 7b7be294cf7 Fortran: Sync coarray images on exit. 57778be389f Fortran: Fix creating shared memory on macOS. 62ff9b73f72 Fortran: Fix caf_shmem syncing on Windows. 2a9f0718131 Fortran: Detect working CLZL or use alternative. 8ecb370f10a Fortran: Enable coarray tests for multi image use [PR88076] 4177c211fdb Fortran: Add a shared memory multi process coarray implementation [PR88076] 339dc9b6dba Fortran: Fix signatures of coarray API and caf_single. 7edc0257f15 Fortran: Fix coarray generation for char arrays and derived types. a6bd423ec38 Fortran: Small fixes of coarray routines handling and code gen. 7d101fb3613 Fortran: Unify check of teams parameter in failed/stopped_images(). I will not repeat the above info for the upcoming emails See attached. Awaiting approval.
caf_shmem-1-of-22.patch
(text/x-patch, 3.1 KB)
From 7d101fb3613113d80ad2cd40e3fe2db99d016966 Mon Sep 17 00:00:00 2001 From: Andre Vehreschild <[email protected]> Date: Fri, 25 Apr 2025 14:37:47 +0200 Subject: [PATCH] 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. --- gcc/fortran/check.cc | 9 ++------- gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08 | 2 +- gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08 | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index 0ad954118bb..c1f1c660db0 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" } -- 2.53.0