summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/class_4c.f03
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/class_4c.f03')
-rw-r--r--gcc/testsuite/gfortran.dg/class_4c.f0329
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/class_4c.f03 b/gcc/testsuite/gfortran.dg/class_4c.f03
new file mode 100644
index 000000000..c76b3ab69
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/class_4c.f03
@@ -0,0 +1,29 @@
+! { dg-do run }
+! { dg-additional-sources class_4a.f03 class_4b.f03 }
+!
+! Test the fix for PR41583, in which the different source files
+! would generate the same 'vindex' for different class declared
+! types.
+!
+! The test comprises class_4a, class_4b class_4c and class_4d.f03
+!
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+!
+ use m
+ use m2
+ type,extends(t) :: t3
+ end type t3
+
+ integer :: i
+ class(t), allocatable :: a
+ allocate(t3 :: a)
+ select type(a)
+ type is(t)
+ i = 1
+ type is(t2)
+ i = 2
+ type is(t3)
+ i = 3
+ end select
+ print *, i
+end