| !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)] |