Skip to content

Commit 9071dce

Browse files
authored
[smoke-fort-fails] Add flang-523213 test for optional shared (#1385)
1 parent 174a587 commit 9071dce

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

test/smoke-fort-fails/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ TESTS_DIR = \
1717
flang-519158 \
1818
flang-519158-par \
1919
flang-522059 \
20+
flang-523213 \
2021
flang-522365-loop-1-1 \
2122
flang-522365-loop-2a \
2223
flang-522365-loop-2s \
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#NOOPT = 1
2+
#NOOMP = 1
3+
#OMP_FLAGS = -fopenmp
4+
include ../../Makefile.defs
5+
6+
TESTNAME = repro_optional_shared
7+
TESTSRC_MAIN = repro_optional_shared.F90
8+
TESTSRC_AUX =
9+
TESTSRC_ALL = $(TESTSRC_MAIN) $(TESTSRC_AUX)
10+
11+
FLANG ?= flang
12+
OMP_BIN = $(AOMP)/bin/$(FLANG)
13+
CC = $(OMP_BIN) $(VERBOSE)
14+
#-ccc-print-phases
15+
#"-\#\#\#"
16+
17+
include ../Makefile.rules
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
MODULE MOD
2+
IMPLICIT NONE
3+
CONTAINS
4+
SUBROUTINE ROUTINE(A, B)
5+
IMPLICIT NONE
6+
REAL(4), ALLOCATABLE, OPTIONAL, INTENT(IN) :: A(:)
7+
REAL(4), INTENT(OUT) :: B(:)
8+
INTEGER(4) :: I, IA
9+
IF(PRESENT(A)) THEN
10+
IA = 1
11+
write(*,*) "A is present"
12+
ELSE
13+
IA=0
14+
write(*,*) "A is NOT present"
15+
END IF
16+
17+
18+
!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SHARED(A,B,IA)
19+
DO I=1,10
20+
IF (IA>0) THEN
21+
B(I) = B(I) + A(I)
22+
END IF
23+
END DO
24+
25+
END SUBROUTINE ROUTINE
26+
27+
END MODULE MOD
28+
29+
PROGRAM MAIN
30+
USE MOD
31+
IMPLICIT NONE
32+
REAL(4), ALLOCATABLE :: A(:)
33+
REAL(4), ALLOCATABLE :: B(:)
34+
INTEGER(4) :: I
35+
ALLOCATE(B(10))
36+
DO I=1,10
37+
B(I)=0
38+
END DO
39+
!$OMP TARGET DATA MAP(FROM: B)
40+
41+
CALL ROUTINE(B=B)
42+
43+
!$OMP END TARGET DATA
44+
DO I=1,10
45+
WRITE(*,*), B(I)
46+
ENDDO
47+
DEALLOCATE(B)
48+
END PROGRAM MAIN

0 commit comments

Comments
 (0)