1! { dg-do compile }
2!
3! PR fortran/45077
4!
5! Contributed by Dominique d'Humieres, based on a test
6! case of Juergen Reuter.
7!
8
9module iso_red
10  type, public :: varying_string
11     character(LEN=1), dimension(:), allocatable :: chars
12  end type varying_string
13end module iso_red
14
15module ifiles
16  use iso_red, string_t => varying_string
17contains
18  function line_get_string_advance (line) result (string)
19    type(string_t) :: string
20    character :: line
21  end function line_get_string_advance
22end module ifiles
23
24module syntax_rules
25  use iso_red, string_t => varying_string
26  use ifiles, only: line_get_string_advance
27contains
28  subroutine syntax_init_from_ifile ()
29    type(string_t) :: string
30       string = line_get_string_advance ("")
31  end subroutine syntax_init_from_ifile
32end module syntax_rules
33end
34