38 lines
920 B
Fortran
38 lines
920 B
Fortran
|
! { dg-do compile }
|
||
|
! Tests the fix for a further regression caused by the
|
||
|
! fix for PR28788, as noted in reply #13 in the Bugzilla
|
||
|
! entry by Martin Tee <aovb94@dsl.pipex.com>.
|
||
|
! The problem was caused by contained, use associated
|
||
|
! derived types with pointer components of a derived type
|
||
|
! use associated in a sibling procedure, where both are
|
||
|
! associated by an ONLY clause. This is the reporter's
|
||
|
! test case.
|
||
|
!
|
||
|
MODULE type_mod
|
||
|
TYPE a
|
||
|
INTEGER :: n(10)
|
||
|
END TYPE a
|
||
|
|
||
|
TYPE b
|
||
|
TYPE (a), POINTER :: m(:) => NULL ()
|
||
|
END TYPE b
|
||
|
END MODULE type_mod
|
||
|
|
||
|
MODULE seg_mod
|
||
|
CONTAINS
|
||
|
SUBROUTINE foo (x)
|
||
|
USE type_mod, ONLY : a ! failed
|
||
|
IMPLICIT NONE
|
||
|
TYPE (a) :: x
|
||
|
RETURN
|
||
|
END SUBROUTINE foo
|
||
|
|
||
|
SUBROUTINE bar (x)
|
||
|
USE type_mod, ONLY : b ! failed
|
||
|
IMPLICIT NONE
|
||
|
TYPE (b) :: x
|
||
|
RETURN
|
||
|
END SUBROUTINE bar
|
||
|
END MODULE seg_mod
|
||
|
! { dg-final { cleanup-modules "type_mod seg_mod" } }
|