! PR fortran/104328 ! { dg-do compile } subroutine foo integer :: k = 1 !$omp atomic compare if ( k == 2 ) then ! { dg-error "unexpected !.OMP ATOMIC expression" } end if end subroutine bar real :: x = 1 !$omp atomic compare if ( x == 2 ) then ! { dg-error "unexpected !.OMP ATOMIC expression" } end if end subroutine baz integer :: i !$omp atomic capture i = 1 i = i + 1. ! { dg-error "!.OMP ATOMIC capture-statement requires a scalar variable of intrinsic type" } end subroutine qux integer :: i = 0 !$omp atomic capture i = i + 1.0 i = i + 1.0 ! { dg-error "!.OMP ATOMIC capture-statement requires a scalar variable of intrinsic type" } end subroutine garply logical :: k = .true. !$omp atomic capture compare if ( k ) then ! { dg-error "unexpected !.OMP ATOMIC expression" } else end if end