Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

119 lines
2.1 KiB
Fortran

!RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=60
subroutine f00
integer :: x, v
! The end-directive is optional in ATOMIC READ. Expect no diagnostics.
!$omp atomic read
v = x
!$omp atomic read
v = x
!$omp end atomic
end
subroutine f01
integer, pointer :: x, v
! Intrinsic assignment and pointer assignment are both ok. Expect no
! diagnostics.
!$omp atomic read
v = x
!$omp atomic read
v => x
end
subroutine f02(i)
integer :: i, v
interface
function p(i)
integer, pointer :: p
integer :: i
end
end interface
! Atomic variable can be a function reference. Expect no diagostics.
!$omp atomic read
v = p(i)
end
subroutine f03
integer :: x(3), y(5), v(3)
!$omp atomic read
!ERROR: Atomic variable x should be a scalar
v = x
!$omp atomic read
!ERROR: Atomic variable y(2_8:4_8:1_8) should be a scalar
v = y(2:4)
end
subroutine f04
integer :: x, y(3), v
!$omp atomic read
!ERROR: Within atomic operation x and x access the same storage
x = x
! Accessing same array, but not the same storage. Expect no diagnostics.
!$omp atomic read
y(1) = y(2)
end
subroutine f05
integer :: x, v
!$omp atomic read
!ERROR: Atomic expression x+1_4 should be a variable
v = x + 1
end
subroutine f06
character :: x, v
!$omp atomic read
!ERROR: Atomic variable x cannot have CHARACTER type
v = x
end
subroutine f07
integer, allocatable :: x
integer :: v
allocate(x)
!$omp atomic read
!ERROR: Atomic variable x cannot be ALLOCATABLE
v = x
end
subroutine f08
type :: struct
integer :: m
end type
type(struct) :: x, v
!$omp atomic read
!ERROR: Atomic variable x should have an intrinsic type
v = x
end
subroutine f09(x, v)
class(*), pointer :: x, v
!$omp atomic read
!ERROR: Atomic variable x cannot be a pointer to a polymorphic type
v => x
end
subroutine f10(x, v)
type struct(length)
integer, len :: length
end type
type(struct(*)), pointer :: x, v
!$omp atomic read
!ERROR: Atomic variable x is a pointer to a type with non-constant length parameter
v => x
end