1! { dg-do run } 2! { dg-additional-options "-w -freal-4-real-16 -freal-8-real-4" } 3! { dg-require-effective-target fortran_real_16 } 4! 5! PR fortran/99355 6! PR fortran/99355 comment 10 to 13 + PR fortran/57871 7! 8 9program test 10 real :: r1 11 real*4:: r2 12 real(4) :: r3 13 real(selected_real_kind(p=6)) :: r4 14 integer, parameter :: k4 = 4, k8 = 8 15 16 double precision :: d1 17 real*8 :: d2 18 real(8) :: d3 19 real(kind(1.d0)) :: d4 ! << this is ambiguous: kind=8 → 4 → 16 or 8 → 4; thus,excluded below 20 real(selected_real_kind(p=15)) :: d5 21 22 !print '(tr3,a10,10(tr1,i2))', 'single', kind(r1), kind(r2), kind(r3), kind(r4) 23 !print '(tr3,a10,10(tr1,i2))', 'double', kind(d1), kind(d2), kind(d3), kind(d4), kind(d5) 24 if (any ([kind(1.0), kind(1.0_4), kind(1.0_k4), kind(r1), kind(r2), kind(r3), kind(r4)] /= 16)) stop 1 25 if (any ([kind(1.d0), kind(1.0_8), kind(1.0_k8), kind(d1), kind(d2), kind(d3), kind(d5)] /= 4)) stop 2 26end program test 27