------- Comment #3 from dominiq at lps dot ens dot fr 2009-02-28 11:38 -------
> Define an effective-target keyword xxx via check_effective_target_xxx in
> gcc/testsuite/lib/target-supports.exp.
The only test I see is check_effective_target_fortran_large_real and it does
not distinguishes between real(10) and real(16):
# Return 1 if the target supports Fortran real kinds larger than real(8),
# 0 otherwise.
#
# When the target name changes, replace the cached result.
proc check_effective_target_fortran_large_real { } {
return [check_no_compiler_messages fortran_large_real executable {
! Fortran
integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
real(kind=k) :: x
x = cos (x)
end
}]
}
Using precision(x) in similar tests could be used for
check_effective_target_fortran_real_10 and
check_effective_target_fortran_real_16: precision(x)==18 for real(10) and is
larger than 30 for real(16) (31 on powerpc-apple-darwin9, 33 with ifort).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37578