blob: 38b3e783d86b3a49bc9c601f5ac68cc8ac707a0a [file] [log] [blame]
! RUN: %python %S/test_errors.py %s %flang_fc1
module m
interface
!ERROR: An ATTRIBUTES(DEVICE) subprogram must be a top-level module procedure
attributes(device) subroutine exts1
end
end interface
contains
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
recursive attributes(device) subroutine s1
end
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
pure attributes(device) subroutine s2
end
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
elemental attributes(device) subroutine s3
end
subroutine s4
contains
!ERROR: A device subprogram may not be an internal subprogram
attributes(device) subroutine inner
end
end
attributes(device) subroutine s5 ! nvfortran crashes on this one
contains
!ERROR: 'inner' may not be an internal procedure of CUDA device subprogram 's5'
subroutine inner
end
end
attributes(device) subroutine s6
stmtfunc(x) = x + 1. ! ok
end
!ERROR: A function may not have ATTRIBUTES(GLOBAL) or ATTRIBUTES(GRID_GLOBAL)
attributes(global) real function f1
end
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
recursive attributes(global) subroutine s7
end
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
pure attributes(global) subroutine s8
end
!ERROR: A device subprogram may not be RECURSIVE, PURE, or ELEMENTAL
elemental attributes(global) subroutine s9
end
end
!ERROR: An ATTRIBUTES(DEVICE) subprogram must be a top-level module procedure
attributes(device) subroutine exts1
end