summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/class_allocate_2.f03
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/class_allocate_2.f03')
-rw-r--r--gcc/testsuite/gfortran.dg/class_allocate_2.f0323
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/class_allocate_2.f03 b/gcc/testsuite/gfortran.dg/class_allocate_2.f03
new file mode 100644
index 00000000000..754faa9a9f4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/class_allocate_2.f03
@@ -0,0 +1,23 @@
+! { dg-do compile }
+!
+! PR fortran/41582
+!
+subroutine test()
+type :: t
+end type t
+class(t), allocatable :: c,d
+allocate(t :: d)
+allocate(c,source=d)
+end
+
+type, abstract :: t
+end type t
+type t2
+ class(t), pointer :: t
+end type t2
+
+class(t), allocatable :: a,c,d
+type(t2) :: b
+allocate(a) ! { dg-error "requires a type-spec or SOURCE" }
+allocate(b%t) ! { dg-error "requires a type-spec or SOURCE" }
+end