diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/proc_ptr_comp_32.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/proc_ptr_comp_32.f90 | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_32.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_32.f90 new file mode 100644 index 00000000000..eda972a4548 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_32.f90 @@ -0,0 +1,37 @@ +! { dg-do compile } +! +! PR 48095: [OOP] Invalid assignment to procedure pointer component not rejected +! +! Contributed by Arjen Markus <arjen.markus895@gmail.com> + +module m + + implicit none + + type :: rectangle + procedure(get_area), pointer :: get_special_area + end type rectangle + + abstract interface + real function get_area( this ) + import :: rectangle + class(rectangle), intent(in) :: this + end function get_area + end interface + +contains + + real function get_my_area( this ) + type(rectangle), intent(in) :: this + get_my_area = 3.0 + end function get_my_area + +end module + + +use m +type(rectangle) :: rect +rect%get_special_area => get_my_area ! { dg-error "Interface mismatch in procedure pointer assignment" } +end + +! { dg-final { cleanup-modules "m" } } |