diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/class_40.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/class_40.f03 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/class_40.f03 b/gcc/testsuite/gfortran.dg/class_40.f03 new file mode 100644 index 000000000..bd367dfe5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/class_40.f03 @@ -0,0 +1,36 @@ +! { dg-do run } +! +! PR 47767: [OOP] SELECT TYPE fails to execute correct TYPE IS block +! +! Contributed by Andrew Benson <abenson@caltech.edu> + +module Tree_Nodes + type treeNode + contains + procedure :: walk + end type +contains + subroutine walk (thisNode) + class (treeNode) :: thisNode + print *, SAME_TYPE_AS (thisNode, treeNode()) + end subroutine +end module + +module Merger_Trees + use Tree_Nodes + private + type(treeNode), public :: baseNode +end module + +module Merger_Tree_Build + use Merger_Trees +end module + +program test + use Merger_Tree_Build + use Tree_Nodes + type(treeNode) :: node + call walk (node) +end program + +! { dg-final { cleanup-modules "Tree_Nodes Merger_Trees Merger_Tree_Build" } } |