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

--- Comment #5 from kargl at gcc dot gnu.org ---
(In reply to kargl from comment #3)
> (In reply to Jürgen Reuter from comment #2)
> > (In reply to kargl from comment #1)
> > > W(In reply to Jürgen Reuter from comment #0)
> > > > Created attachment 46763 [details]
> > > > Reproducer
> > > > 
> > > > This is a rather recent regression, failing with r274920, and it had 
> > > > been
> > > > still working with r274120. The compile error is:
> > > > gfortran  -c muli_remnant.f90
> > > > muli_remnant.f90:2186:34:
> > > > 
> > > >  2186 |        call evolvePDF (x(0), q, f)
> > > >       |                                  1
> > > > Error: Type mismatch in argument '_formal_0' at (1); passed REAL(8) to
> > > > REAL(16)
> > > 
> > > What are the declared types of x, q, and f?
> > > What are the types of the dummy arguments of
> > > evolvepdf()?
> > 
> > The code is attached.
> 
> The code is broken, and gfortran has told you.

module kinds
  integer, parameter :: double    =  8   !  7..15 ! real64  ! c_double     
  integer, parameter :: quadruple = 16   ! 19..33 ! real128 ! c_float128   
  integer, parameter :: default  = quadruple
end module kinds

module pdf_builtin

  subroutine pdfnorm_scan (this)
    real(double) :: q, q2min, q2max
    real(double), dimension(-6:6) :: f
    real(double), dimension(0:2) :: x
    call evolvePDF (x(1), q, f)
  end subroutine pdfnorm_scan

evolvepdf is called with REAL(8), REAL(8), REAL(8)

  subroutine proton_remnant_momentum_kind_pdf (this, GeV_scale, &
       momentum_fraction, lha_flavor, valence_pdf, sea_pdf, twin_pdf)
    real(default), intent(in) :: GeV_scale, momentum_fraction
    integer, intent(in) :: lha_flavor
    real(double), dimension(-6:6) :: pdf_array
    call evolvePDF (momentum_fraction, GeV_scale, pdf_array)
  end subroutine proton_remnant_momentum_kind_pdf

evolvepdf is called with REAL(16), REAl(16), REAL(8)


evolvepdf is not generic.

Reply via email to