annotate gcc/testsuite/gfortran.dg/dummy_procedure_11.f90 @ 144:8f4e72ab4e11

fix segmentation fault caused by nothing next cur_op to end
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 21:23:56 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do compile }
kono
parents:
diff changeset
2 !
kono
parents:
diff changeset
3 ! PR 60507: Passing function call into procedure argument not caught
kono
parents:
diff changeset
4 !
kono
parents:
diff changeset
5 ! Contributed by Vladimir Fuka <vladimir.fuka@gmail.com>
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 type :: t
kono
parents:
diff changeset
8 procedure(g), pointer, nopass :: ppc => g
kono
parents:
diff changeset
9 end type
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 procedure(g), pointer :: pp => g
kono
parents:
diff changeset
12 type(t)::x
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 print *, f(g)
kono
parents:
diff changeset
15 print *, f(g()) ! { dg-error "Expected a procedure for argument" }
kono
parents:
diff changeset
16 print *, f(pp)
kono
parents:
diff changeset
17 print *, f(pp()) ! { dg-error "Expected a procedure for argument" }
kono
parents:
diff changeset
18 print *, f(x%ppc)
kono
parents:
diff changeset
19 print *, f(x%ppc()) ! { dg-error "Expected a procedure for argument" }
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 contains
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 real function f(fun)
kono
parents:
diff changeset
24 procedure(g) :: fun
kono
parents:
diff changeset
25 f = fun()
kono
parents:
diff changeset
26 end function
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 real function g()
kono
parents:
diff changeset
29 g = 1.
kono
parents:
diff changeset
30 end function
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 end