https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95644
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #8 from kargl at gcc dot gnu.org ---
(In reply to Bill Long from comment #7)
> Inquiry from the original site:
>
> "Does GCC provide a timeline for when they will conform to F2018?"
gfortran is maintained mostly by a very, very, very, small group
of individuals who have very, very, very, limited free time. Things
get fixed and implemented as time and whim permits.
The quickest way to ensure something is implemented/fixed is to
download the source code and dive in.
Short of someone diving in, there is always the kludge of
module kludge
use iso_c_binding, only : fp => c_float
use iso_c_binding, only : dp => c_double
use iso_c_binding, only : lp => c_long_double
implicit none
private
public ieee_fma
interface ieee_fma
function fmaf(x, y, z) bind(c, name='fmaf')
import fp
real(fp) fmaf
real(fp), intent(in), value :: x, y, z
end function fmaf
function fma(x, y, z) bind(c, name='fma')
import dp
real(dp) fma
real(dp), intent(in), value :: x, y, z
end function fma
function fmal(x, y, z) bind(c, name='fmal')
import lp
real(lp) fmal
real(lp), intent(in), value :: x, y, z
end function fmal
end interface ieee_fma
end module
program foo
use kludge, only : ieee_fma
real x, y, z ! Yeah, I should use fp from kludge.
x = 1.
y = 2. / 3.
z = y
print *, ieee_fma(x, y, z)
end program foo
Or, if the availability of IEEE_FMA is must have feature and someone
is incapability of implemented, someone could approach on of those
very, very, very, few individuals and pay for the work to be done.