blob: 8cf4e6a4cda29e32949bfd88ffe46eea8a4385c5 [file] [log] [blame] [edit]
!RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s
program test
type t1p
type(t1p), pointer :: arr(:)
end type
type, extends(t1p) :: t1c
end type
type t2p
type(t2p), pointer :: scalar
end type
type, extends(t2p) :: t2c
end type
type t3p
type(t3p), allocatable :: arr(:)
end type
type, extends(t3p) :: t3c
end type
type t4p
type(t4p), allocatable :: scalar
end type
type, extends(t4p) :: t4c
end type
type t5p
class(*), pointer :: arr(:)
end type
type, extends(t5p) :: t5c
end type
type t6p
class(*), pointer :: scalar
end type
type, extends(t6p) :: t6c
end type
type t7p
class(*), allocatable :: arr(:)
end type
type, extends(t7p) :: t7c
end type
type t8p
class(*), allocatable :: scalar
end type
type, extends(t8p) :: t8c
end type
type(t1p), target :: t1pt(1)
type(t1p), pointer :: t1pp(:)
type(t2p), target :: t2pt
type(t2p), pointer :: t2pp
type(t3p) t3pa(1)
type(t4p) t4ps
type(t1c) x1
type(t2c) x2
type(t3c) x3
type(t4c) x4
type(t5c) x5
type(t6c) x6
type(t7c) x7
type(t8c) x8
!CHECK: x1=t1c(arr=t1pt)
x1 = t1c(t1pt)
!CHECK: x1=t1c(arr=t1pp)
x1 = t1c(t1pp)
!CHECK: x2=t2c(scalar=t2pt)
x2 = t2c(t2pt)
!CHECK: x2=t2c(scalar=t2pp)
x2 = t2c(t2pp)
!CHECK: x3=t3c(arr=t3pa)
x3 = t3c(t3pa)
!CHECK: x4=t4c(scalar=t4ps)
x4 = t4c(t4ps)
!CHECK: x4=t4c(scalar=t4p(scalar=NULL()))
x4 = t4c(t4p())
!CHECK: x5=t5c(arr=t1pt)
x5 = t5c(t1pt)
!CHECK: x5=t5c(arr=t1pp)
x5 = t5c(t1pp)
!CHECK: x6=t6c(scalar=t2pt)
x6 = t6c(t2pt)
!CHECK: x6=t6c(scalar=t2pp)
x6 = t6c(t2pp)
!CHECK: x7=t7c(arr=t3pa)
x7 = t7c(t3pa)
!CHECK: x8=t8c(scalar=t4ps)
x8 = t8c(t4ps)
!CHECK: x8=t8c(scalar=t4p(scalar=NULL()))
x8 = t8c(t4p())
end