| ! { dg-do run } |
| ! |
| ! PR fortran/43199 |
| ! |
| ! This program gave an ICE due to reading the REF_COMPONENT with CLASS. |
| ! |
| module m_string |
| type t_string |
| character, dimension(:), allocatable :: string |
| end type t_string |
| contains |
| pure function string_to_char ( s ) result(res) |
| class(t_string), intent(in) :: s |
| character(len=size(s%string)) :: res |
| integer :: i |
| do i = 1,len(res) |
| res(i:i) = s%string(i) |
| end do |
| end function string_to_char |
| end module m_string |
| |
| use m_string |
| type(t_string) :: str |
| allocate(str%string(5)) |
| str%string = ['H','e','l','l','o'] |
| if (len (string_to_char (str)) /= 5) STOP 1 |
| if (string_to_char (str) /= "Hello") STOP 2 |
| end |