brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 023dbcb Raw
76 lines · plain
1! RUN: bbc -emit-fir %s -o - | FileCheck %s2 3! Tests the generation of fir.type_info operations.4 5module polymorphic_types6  type p17    integer :: a8    integer :: b9  contains10    procedure :: proc1 => proc1_p111    procedure :: aproc12    procedure :: zproc13  end type14 15  type, extends(p1) :: p216    integer :: c17  contains18    procedure :: proc1 => proc1_p219    procedure :: aproc220  end type21 22  type, extends(p2) :: p323    integer :: d24  contains25    procedure :: aproc326  end type27contains28 29 30  subroutine proc1_p1(p)31    class(p1) :: p32  end subroutine33 34  subroutine aproc(p)35    class(p1) :: p36  end subroutine37 38  subroutine zproc(p)39    class(p1) :: p40  end subroutine41 42  subroutine proc1_p2(p)43    class(p2) :: p44  end subroutine45 46  subroutine aproc2(p)47    class(p2) :: p48  end subroutine49 50  subroutine aproc3(p)51    class(p3) :: p52  end subroutine53 54end module55 56! CHECK-LABEL: fir.type_info @_QMpolymorphic_typesTp157! CHECK:         fir.dt_entry "aproc", @_QMpolymorphic_typesPaproc58! CHECK:         fir.dt_entry "proc1", @_QMpolymorphic_typesPproc1_p159! CHECK:         fir.dt_entry "zproc", @_QMpolymorphic_typesPzproc60! CHECK:       }61 62! CHECK-LABEL: fir.type_info @_QMpolymorphic_typesTp2 {{.*}}extends !fir.type<_QMpolymorphic_typesTp1{{.*}}>63! CHECK:         fir.dt_entry "aproc", @_QMpolymorphic_typesPaproc64! CHECK:         fir.dt_entry "proc1", @_QMpolymorphic_typesPproc1_p265! CHECK:         fir.dt_entry "zproc", @_QMpolymorphic_typesPzproc66! CHECK:         fir.dt_entry "aproc2", @_QMpolymorphic_typesPaproc267! CHECK:       }68 69! CHECK-LABEL: fir.type_info @_QMpolymorphic_typesTp3 {{.*}}extends !fir.type<_QMpolymorphic_typesTp2{{.*}}>70! CHECK:         fir.dt_entry "aproc", @_QMpolymorphic_typesPaproc71! CHECK:         fir.dt_entry "proc1", @_QMpolymorphic_typesPproc1_p272! CHECK:         fir.dt_entry "zproc", @_QMpolymorphic_typesPzproc73! CHECK:         fir.dt_entry "aproc2", @_QMpolymorphic_typesPaproc274! CHECK:         fir.dt_entry "aproc3", @_QMpolymorphic_typesPaproc375! CHECK:       }76