]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fortran: Implement the COSHAPE intrinsic [PR99250]
authorPaul Thomas <pault@gcc.gnu.org>
Sat, 14 Feb 2026 08:48:11 +0000 (08:48 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sat, 14 Feb 2026 08:48:11 +0000 (08:48 +0000)
commit904b7a3010aaf2abe22643b92a1374ace40ec574
tree4be096a356c27c3c454895268cfed74f3f26fa43
parentf7677c695f26298031a1f40719bc10ca376d10bc
Fortran: Implement the COSHAPE intrinsic [PR99250]

2026-02-14  Paul Thomas  <pault@gcc.gnu.org>

gcc/fortran
PR fortran/99250
* check.cc (gfc_check_coshape): New function.
* gfortran.h: Add GFC_ISYM_COSHAPE to gfc_isym_id.
* intrinsic.cc (add_functions): Add the coshape prototype and
its 'make_generic'.
* intrinsic.h: Add prototypes for gfc_check_coshape and
gfc_resolve_coshape.
* intrinsic.texi : Add entries for coshape.
* iresolve.cc (gfc_resolve_coshape): New function.
* trans-array.cc (gfc_conv_ss_startstride): Add 'case
GFC_ISYM_COSHAPE' in two places.
* trans-intrinsic.cc (conv_intrinsic_cobound): Modify assert in
scalarized section for lbound. Set bound to zero for scalar
case of coshape. Keep the lbound and use it together with the
scalarized ubound to obtain the coshape.
(gfc_conv_intrinsic_function, gfc_add_intrinsic_ss_code and
gfc_walk_intrinsic_function): Add 'case GFC_ISYM_COSHAPE' as
appropriate.

gcc/testsuite/
PR fortran/99250
* gfortran.dg/coshape_1.f90: New test.
gcc/fortran/check.cc
gcc/fortran/gfortran.h
gcc/fortran/intrinsic.cc
gcc/fortran/intrinsic.h
gcc/fortran/intrinsic.texi
gcc/fortran/iresolve.cc
gcc/fortran/trans-array.cc
gcc/fortran/trans-intrinsic.cc
gcc/testsuite/gfortran.dg/coshape_1.f90 [new file with mode: 0644]