! { dg-do compile } ! { dg-options "-O0" } ! Tests patch for PR24158 - The module would compile, in spite ! of the recursion between the derived types. This would cause ! an ICE in the commented out main program. The standard demands ! that derived type components be already defined, to break ! recursive derived type definitions. ! ! Contributed by Paul Thomas ! module snafu type :: a integer :: v type(b) :: i ! { dg-error "not been previously defined" } end type a type :: b type(a) :: i end type b type (a) :: foo end module snafu ! use snafu ! foo%v = 1 ! end ! { dg-final { cleanup-modules "snafu" } }