llvm/flang/test/semantics/modfile14.f90
Tim Keith 8d959bb943 [flang] Add support for type-bound generics
Record the bindings in a symbol with GenericBindingDetails, including
bindings inherited from extended types. Check that they have consistent
accessibility.

Original-commit: flang-compiler/f18@0f780abcea
Reviewed-on: https://github.com/flang-compiler/f18/pull/249
2018-12-26 14:31:26 -08:00

63 lines
1.4 KiB
Fortran

! Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
!
! Licensed under the Apache License, Version 2.0 (the "License");
! you may not use this file except in compliance with the License.
! You may obtain a copy of the License at
!
! http://www.apache.org/licenses/LICENSE-2.0
!
! Unless required by applicable law or agreed to in writing, software
! distributed under the License is distributed on an "AS IS" BASIS,
! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
! See the License for the specific language governing permissions and
! limitations under the License.
module m
type t1
contains
procedure, nopass :: s2
procedure, nopass :: s3
generic :: foo => s2
end type
type, extends(t1) :: t2
contains
procedure, nopass :: s4
generic :: foo => s3
generic :: foo => s4
end type
contains
subroutine s2(i)
end
subroutine s3(r)
end
subroutine s4(z)
complex :: z
end
end module
!Expect: m.mod
!module m
! type::t1
! contains
! procedure,nopass::s2
! procedure,nopass::s3
! generic::foo=>s2
! end type
! type,extends(t1)::t2
! contains
! procedure,nopass::s4
! generic::foo=>s2
! generic::foo=>s3
! generic::foo=>s4
! end type
!contains
! subroutine s2(i)
! integer(4)::i
! end
! subroutine s3(r)
! real(4)::r
! end
! subroutine s4(z)
! complex(4)::z
! end
!end