https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120958

--- Comment #5 from kargls at comcast dot net ---
(In reply to Martin Jambor from comment #1)
> And indeed the following hack in Fortran FE "fixes" the benchmark (of
> course, this is not meant as a proposed fix, just as a demonstration
> where the problem is):
> 

So, if I understand, you want an fnspec of ". . w w w w w w w".
Can you show f->sym and f->sym-attr from gdb?

Prior to F2008, MPI says the interface is 

USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR)
     <type>  BUF(*)
     INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR

with F2008, one has

USE mpi_f08
MPI_Irecv(buf, count, datatype, source, tag, comm, request, ierror)
     TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf
     INTEGER, INTENT(IN) :: count, source, tag
     TYPE(MPI_Datatype), INTENT(IN) :: datatype
     TYPE(MPI_Comm), INTENT(IN) :: comm
     TYPE(MPI_Request), INTENT(OUT) :: request
     INTEGER, OPTIONAL, INTENT(OUT) :: ierror

in either case an explicit interface is required, and gfortran 
should deal with the '<type> buf(*)' and 'type(*), dimension(..)'
without your hack.  Of particular interest, is the f->sym->ts.type.

Reply via email to