! { 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