blob: facc2808157226e5b215cbea62c271e5aea6dd6e [file] [log] [blame]
!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s
!Ensure ASSIGNMENT(=) overrides are applied to the special procedures table.
module m
type base
contains
procedure :: baseAssign
generic :: assignment(=) => baseAssign
end type
type, extends(base) :: child
contains
procedure :: override
generic :: assignment(=) => override
end type
contains
impure elemental subroutine baseAssign(to, from)
class(base), intent(out) :: to
type(base), intent(in) :: from
end
impure elemental subroutine override(to, from)
class(child), intent(out) :: to
type(child), intent(in) :: from
end
end
!CHECK: .s.child, SAVE, TARGET (CompilerCreated, ReadOnly): ObjectEntity type: TYPE(specialbinding) shape: 0_8:0_8 init:[specialbinding::specialbinding(which=2_1,isargdescriptorset=1_1,istypebound=2_1,specialcaseflag=0_1,proc=override)]
!CHECK: .v.child, SAVE, TARGET (CompilerCreated, ReadOnly): ObjectEntity type: TYPE(binding) shape: 0_8:1_8 init:[binding::binding(proc=baseassign,name=.n.baseassign),binding(proc=override,name=.n.override)]