27 lines · plain
1!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s2!Ensure ASSIGNMENT(=) overrides are applied to the special procedures table.3module m4 type base5 contains6 procedure :: baseAssign7 generic :: assignment(=) => baseAssign8 end type9 type, extends(base) :: child10 contains11 procedure :: override12 generic :: assignment(=) => override13 end type14 contains15 impure elemental subroutine baseAssign(to, from)16 class(base), intent(out) :: to17 type(base), intent(in) :: from18 end19 impure elemental subroutine override(to, from)20 class(child), intent(out) :: to21 type(child), intent(in) :: from22 end23end24 25!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)]26!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)]27