1! { dg-do compile }
2! { dg-options "-std=f95" }
3! PR16404 test 6 - If a component of a derived type is of a type declared to
4! be private, either the derived type definition must contain the PRIVATE
5! statement, or the derived type must be private.
6! Modified on 20051105 to test PR24534.
7! Modified on 20090419 to use -std=f95, since F2003 allows public types
8! with private components.
9!
10! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
11MODULE TEST
12  PRIVATE
13  TYPE :: info_type
14   INTEGER :: value
15  END TYPE info_type
16  TYPE :: all_type! { dg-error "PRIVATE type and cannot be a component" }
17    TYPE(info_type) :: info
18  END TYPE
19  TYPE :: any_type! This is OK because of the PRIVATE statement.
20    PRIVATE
21    TYPE(info_type) :: info
22  END TYPE
23  public  all_type, any_type
24END MODULE
25END
26