1! { dg-do compile }
2! { dg-options "-O0" }
3! Tests patch for PR24158 - The module would compile, in spite
4! of the recursion between the derived types. This would cause
5! an ICE in the commented out main program. The standard demands
6! that derived type components be already defined, to break
7! recursive derived type definitions.
8!
9! Contributed by Paul Thomas <pault@gcc.gnu.org>
10!
11module snafu
12  type       ::   a
13    integer    :: v
14    type(b)    :: i ! { dg-error "not been previously defined" }
15  end type a
16  type       ::   b
17    type(a)    :: i
18  end type b
19  type (a)   :: foo
20end module snafu
21
22!  use snafu
23!  foo%v = 1
24!  end
25