1! { dg-do compile }
2!
3! PR 85395: [F03] private clause contained in derived type acquires spurious scope
4!
5! Contributed by <cfd@mnet-mail.de>
6
7module defs
8   implicit none
9
10   type :: base
11   contains
12      private
13   end type
14
15   type :: options
16      procedure(), pointer, nopass :: ptr
17   end type
18
19   type :: t
20      private
21      procedure(), pointer, nopass, public :: ptr
22   end type
23end module
24
25
26program p
27   use defs
28   implicit none
29   type(options) :: self
30   type(t) :: dt
31   self%ptr => null()
32   dt%ptr => null()
33end
34