43 lines
940 B
Fortran
43 lines
940 B
Fortran
! { dg-do compile }
|
|
!
|
|
! PR/fortran 25829
|
|
!
|
|
! Check parsing and checking of ASYNCHRONOUS
|
|
!
|
|
type(t) function func0()
|
|
asynchronous :: a
|
|
integer, asynchronous:: b
|
|
allocatable :: c
|
|
volatile :: d
|
|
type t
|
|
sequence
|
|
integer :: i = 5
|
|
end type t
|
|
end function func0
|
|
|
|
integer function func()
|
|
asynchronous :: func
|
|
integer, asynchronous:: b
|
|
allocatable :: c
|
|
volatile :: func
|
|
type t
|
|
sequence
|
|
integer :: i = 5
|
|
end type t
|
|
end function func
|
|
|
|
function func2() result(res)
|
|
volatile res
|
|
asynchronous res
|
|
end function func2
|
|
|
|
subroutine sub()
|
|
asynchronous sub ! { dg-error "SUBROUTINE attribute conflicts with ASYNCHRONOUS" }
|
|
volatile sub ! { dg-error "SUBROUTINE attribute conflicts with VOLATILE" }
|
|
end subroutine sub
|
|
|
|
program main
|
|
asynchronous main ! { dg-error "PROGRAM attribute conflicts with ASYNCHRONOUS" }
|
|
volatile main ! { dg-error "PROGRAM attribute conflicts with VOLATILE" }
|
|
end program main
|