1! { dg-do compile }
2!
3! PR 54134: [OOP] ICE overriding derived type bound function with allocatable character as result
4!
5! Contributed by <koen.poppe@cs.kuleuven.be>
6
7module dtAs
8  implicit none
9  type :: A
10  contains
11    procedure, nopass :: name => name_A
12  end type
13contains
14  function name_A() result( name )
15    character(:), allocatable :: name
16    name = "name_A"
17  end function
18end module
19
20module dtBs
21  use dtAs
22  implicit none
23  type, extends( A ) :: B
24  contains
25    procedure, nopass :: name => name_B
26  end type
27contains
28  function name_B() result( name )
29    character(:), allocatable :: name
30    name = "name_B"
31  end function
32end module
33
34! { dg-final { cleanup-modules "dtAs dtBs" } }
35