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