summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/interface_abstract_4.f90
blob: 50f101577e6785669324a697625b7063ec518359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
! { dg-do compile }
!
! PR 41873: Bogus Error: ABSTRACT INTERFACE must not be referenced...
!
! Contributed by Harald Anlauf <anlauf@gmx.de>

  implicit none

  type, abstract :: abstype
  contains
    procedure(f), nopass, deferred :: f_bound
    procedure(s), nopass, deferred :: s_bound
  end type

  abstract interface
    real function f ()
    end function
  end interface

  abstract interface
    subroutine s
    end subroutine
  end interface

contains

  subroutine cg (c)
    class(abstype) :: c
    print *, f()             ! { dg-error "must not be referenced" }
    call s                   ! { dg-error "must not be referenced" }
    print *, c%f_bound ()
    call c%s_bound ()
  end subroutine

end