diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/class_20.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/class_20.f03 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/class_20.f03 b/gcc/testsuite/gfortran.dg/class_20.f03 new file mode 100644 index 000000000..1428102e9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/class_20.f03 @@ -0,0 +1,40 @@ +! { dg-do compile } +! +! PR 44044: [OOP] SELECT TYPE with class-valued function +! comment #1 +! +! Note: All three error messages are being checked for double occurrence, +! using the trick from PR 30612. +! +! Contributed by Janus Weil <janus@gcc.gnu.org> + + +implicit none + +type :: t +end type + +type :: s + sequence +end type + +contains + + function fun() ! { dg-bogus "must be dummy, allocatable or pointer.*must be dummy, allocatable or pointer" } + class(t) :: fun + end function + + function fun2() ! { dg-bogus "cannot have a deferred shape.*cannot have a deferred shape" } + integer,dimension(:) :: fun2 + end function + + function fun3() result(res) ! { dg-bogus "is not extensible.*is not extensible" } + class(s),pointer :: res + end function + +end + + +! { dg-error "must be dummy, allocatable or pointer" "" { target *-*-* } 23 } +! { dg-error "cannot have a deferred shape" "" { target *-*-* } 27 } +! { dg-error "is not extensible" "" { target *-*-* } 31 } |