! { dg-do compile } ! { dg-additional-options "-Wconversion-extra" } ! ! Test fix for PR fortran/96724 ! ! Contributed by José Rui Faustino de Sousa program repeat_p use, intrinsic :: iso_fortran_env, only: int8, int16, int32, int64 implicit none integer, parameter :: n = 20 integer, parameter :: ucs4 = selected_char_kind ('ISO_10646') integer(kind=int8), parameter :: p08 = int(n, kind=int8) integer(kind=int16), parameter :: p16 = int(n, kind=int16) integer(kind=int16), parameter :: p32 = int(n, kind=int32) integer(kind=int16), parameter :: p64 = int(n, kind=int64) integer(kind=int8) :: i08 integer(kind=int16) :: i16 integer(kind=int32) :: i32 integer(kind=int64) :: i64 character(len=n,kind=1) :: c character(len=n,kind=ucs4) :: d i08 = p08 c = repeat('X', 20_int8) c = repeat('X', i08) c = repeat('X', p08) c = repeat('X', len08(c)) d = repeat(ucs4_'X', 20_int8) d = repeat(ucs4_'X', i08) d = repeat(ucs4_'X', p08) d = repeat(ucs4_'X', len08(c)) i16 = p16 c = repeat('X', 20_int16) c = repeat('X', i16) c = repeat('X', p16) c = repeat('X', len16(c)) d = repeat(ucs4_'X', 20_int16) d = repeat(ucs4_'X', i16) d = repeat(ucs4_'X', p16) d = repeat(ucs4_'X', len16(c)) i32 = p32 c = repeat('X', 20_int32) c = repeat('X', i32) c = repeat('X', p32) c = repeat('X', len32(c)) d = repeat(ucs4_'X', 20_int32) d = repeat(ucs4_'X', i32) d = repeat(ucs4_'X', p32) d = repeat(ucs4_'X', len32(c)) i64 = p64 c = repeat('X', 20_int64) c = repeat('X', i64) c = repeat('X', p64) c = repeat('X', len64(c)) d = repeat(ucs4_'X', 20_int64) d = repeat(ucs4_'X', i64) d = repeat(ucs4_'X', p64) d = repeat(ucs4_'X', len64(c)) contains function len08(x) result(l) character(len=*), intent(in) :: x integer(kind=int8) :: l l = int(len(x), kind=int8) end function len08 function len16(x) result(l) character(len=*), intent(in) :: x integer(kind=int16) :: l l = int(len(x), kind=int16) end function len16 function len32(x) result(l) character(len=*), intent(in) :: x integer(kind=int32) :: l l = int(len(x), kind=int32) end function len32 function len64(x) result(l) character(len=*), intent(in) :: x integer(kind=int64) :: l l = int(len(x), kind=int64) end function len64 function ulen08(x) result(l) character(len=*,kind=ucs4), intent(in) :: x integer(kind=int8) :: l l = int(len(x), kind=int8) end function ulen08 function ulen16(x) result(l) character(len=*,kind=ucs4), intent(in) :: x integer(kind=int16) :: l l = int(len(x), kind=int16) end function ulen16 function ulen32(x) result(l) character(len=*,kind=ucs4), intent(in) :: x integer(kind=int32) :: l l = int(len(x), kind=int32) end function ulen32 function ulen64(x) result(l) character(len=*,kind=ucs4), intent(in) :: x integer(kind=int64) :: l l = int(len(x), kind=int64) end function ulen64 end program repeat_p