--- /dev/null
+! PR fortran/34020
+! { dg-do run }
+
+ subroutine atomic_add(lhs, rhs)
+ real lhs, rhs
+!$omp atomic
+ lhs = rhs + lhs
+ end
+
+ real lhs, rhs
+ integer i
+ lhs = 0
+ rhs = 1
+!$omp parallel do num_threads(8) shared(lhs, rhs)
+ do i = 1, 300000
+ call atomic_add(lhs, rhs)
+ enddo
+ if (lhs .ne. 300000) call abort
+ end