111
|
1 ! { dg-do compile }
|
|
2 ! { dg-options "-fcoarray=lib -fdump-tree-original" }
|
|
3 !
|
|
4 implicit none
|
|
5 type t
|
|
6 end type t
|
|
7 class(t), allocatable :: y(:)[:]
|
|
8 call bar()
|
|
9 call foo(y)
|
|
10 contains
|
|
11 subroutine bar(x)
|
|
12 class(t), optional :: x(:)[*]
|
|
13 end subroutine bar
|
|
14 subroutine foo(x)
|
|
15 class(t) :: x(:)[*]
|
|
16 end subroutine foo
|
|
17 end
|
|
18 ! { dg-final { scan-tree-dump-times "foo \\(struct __class_MAIN___T_1_1t & restrict x, void \\* restrict caf_token.., integer\\(kind=\[48\]\\) caf_offset..\\)" 1 "original" } }
|
|
19 ! { dg-final { scan-tree-dump-times "bar \\(struct __class_MAIN___T_1_1t \\* x, void \\* restrict caf_token.., integer\\(kind=\[48\]\\) caf_offset..\\)" 1 "original" } }
|
|
20 ! { dg-final { scan-tree-dump-times "bar \\(0B, 0B, 0\\);" 1 "original" } }
|
|
21 ! { dg-final { scan-tree-dump-times "foo \\(&class.., y._data.token, \\(integer\\(kind=\[48\]\\)\\) class..._data.data - \\(integer\\(kind=\[48\]\\)\\) y._data.data\\);" 1 "original" } }
|