annotate gcc/testsuite/gfortran.dg/pr82253.f90 @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 ! PR middle-end/82253
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 ! { dg-do compile { target fortran_real_16 } }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 ! { dg-options "-Og" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 module pr82253
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 implicit none
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 private
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 public :: static_type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 type, public :: T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 procedure(), nopass, pointer :: testProc => null()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 end type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 type, public :: S
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 complex(kind=16), pointer :: ptr
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 end type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 type(T), target :: type_complex32
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 interface static_type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 module procedure foo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 end interface
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 interface
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 subroutine bar (testProc)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 procedure(), optional :: testProc
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 end subroutine
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 end interface
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 contains
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 function foo (self) result(res)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 complex(kind=16) :: self
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 type(T), pointer :: res
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 call bar (testProc = baz)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 end function
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 subroutine baz (buffer, status)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 character(len=*) :: buffer
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 integer(kind=4) :: status
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 complex(kind=16), target :: obj
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 type(S) :: self
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 integer(kind=1), parameter :: zero(storage_size(obj)/8) = 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 obj = transfer (zero, obj)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 self%ptr => obj
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 write (buffer, *, iostat=status) self%ptr, '#'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 end subroutine
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 end module pr82253