OSDN Git Service

PR testsuite/51875
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / asynchronous_1.f90
1 ! { dg-do compile }
2 !
3 ! PR/fortran 25829
4 !
5 ! Check parsing and checking of ASYNCHRONOUS
6 !
7 type(t) function func0()
8   asynchronous :: a
9   integer, asynchronous:: b
10   allocatable :: c
11   volatile :: d
12   type t
13     sequence
14     integer :: i = 5
15   end type t
16 end function func0
17
18 integer function func()
19   asynchronous :: func
20   integer, asynchronous:: b
21   allocatable :: c
22   volatile :: func
23   type t
24     sequence
25     integer :: i = 5
26   end type t
27 end function func
28
29 function func2() result(res)
30   volatile res
31   asynchronous res
32 end function func2
33
34 subroutine sub()
35   asynchronous sub ! { dg-error "SUBROUTINE attribute conflicts with ASYNCHRONOUS" }
36   volatile sub     ! { dg-error "SUBROUTINE attribute conflicts with VOLATILE" }
37 end subroutine sub
38
39 program main
40   asynchronous main ! { dg-error "PROGRAM attribute conflicts with ASYNCHRONOUS" }
41   volatile main     ! { dg-error "PROGRAM attribute conflicts with VOLATILE" }
42 end program main