xref: /llvm-project/flang/test/Semantics/deferred01.f90 (revision f4fc959c35eb862776ac2e83cb9f41aa88989e3f)
1! RUN: %python %S/test_errors.py %s %flang_fc1
2! Deferred TBPs must be overridden, but when they are private, those
3! overrides must appear in the same module.
4module m1
5  type, abstract :: absBase
6   contains
7    procedure(deferredInterface), deferred, private :: deferredTbp
8  end type
9  abstract interface
10    subroutine deferredInterface(x)
11      import absBase
12      class(absBase), intent(in) :: x
13    end
14  end interface
15end
16
17module m2
18  use m1
19  type, extends(absBase) :: ext
20   contains
21    !ERROR: Override of PRIVATE DEFERRED 'deferredtbp' must appear in its module
22    procedure :: deferredTbp => implTbp
23  end type
24 contains
25  subroutine implTbp(x)
26    class(ext), intent(in) :: x
27  end
28end
29