]> git.ipfire.org Git - people/ms/gcc.git/commit
Fortran: ordering of hidden procedure arguments [PR107441]
authorHarald Anlauf <anlauf@gmx.de>
Fri, 28 Oct 2022 19:58:08 +0000 (21:58 +0200)
committerHarald Anlauf <anlauf@gmx.de>
Wed, 9 Nov 2022 19:51:56 +0000 (20:51 +0100)
commite805adaa283129604a1fb305d0a1cf1e8a90c76e
tree55607d4e9c73577f962629a15d020a504460963e
parent8f5aa130fa61637baec476119e72849f7e3f8c67
Fortran: ordering of hidden procedure arguments [PR107441]

The gfortran ABI specifies the order of given and hidden procedure arguments,
where the hidden presence status flags of optional+value scalar arguments
shall come before character length, coarray token and offset.  Respect that.

gcc/fortran/ChangeLog:

PR fortran/107441
* trans-decl.cc (create_function_arglist): Adjust the ordering of
automatically generated hidden procedure arguments to match the
documented ABI for gfortran.
* trans-types.cc (gfc_get_function_type): Separate hidden parameters
so that the presence flag for optional+value arguments come before
string length, coarray token and offset, as required.

gcc/testsuite/ChangeLog:

PR fortran/107441
* gfortran.dg/coarray/pr107441-caf.f90: New test.
* gfortran.dg/optional_absent_6.f90: New test.
* gfortran.dg/optional_absent_7.f90: New test.
gcc/fortran/trans-decl.cc
gcc/fortran/trans-types.cc
gcc/testsuite/gfortran.dg/coarray/pr107441-caf.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/optional_absent_6.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/optional_absent_7.f90 [new file with mode: 0644]