1! { dg-do compile }
2
3      REAL FUNCTION READ_NEXT()
4        REAL, POINTER :: TMP
5!$OMP SINGLE
6          ALLOCATE (TMP)
7!$OMP END SINGLE COPYPRIVATE (TMP) ! copies the pointer only
8!$OMP MASTER
9          READ (11) TMP
10!$OMP END MASTER
11!$OMP BARRIER
12          READ_NEXT = TMP
13!$OMP BARRIER
14!$OMP SINGLE
15          DEALLOCATE (TMP)
16!$OMP END SINGLE NOWAIT
17      END FUNCTION READ_NEXT
18