Skip to content

Commit 29b3fd2

Browse files
author
Ferran Toda
committed
looprange constant parameter test
1 parent 2691fc1 commit 29b3fd2

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

flang/lib/Lower/OpenMP/OpenMP.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3476,6 +3476,7 @@ static void genOMPDispatch(lower::AbstractConverter &converter,
34763476
TODO(loc, "Unhandled loop directive (" +
34773477
llvm::omp::getOpenMPDirectiveName(dir, version) + ")");
34783478
break;
3479+
}
34793480
case llvm::omp::Directive::OMPD_unroll:
34803481
genUnrollOp(converter, symTable, stmtCtx, semaCtx, eval, loc, queue, item);
34813482
break;

flang/test/Semantics/OpenMP/loop-transformation-clauses01.f90

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ subroutine loop_transformation_construct1
77
implicit none
88
integer, parameter:: i = 5
99
integer :: x
10+
integer :: a
1011
integer :: v(i)
1112

1213
!ERROR: At most one LOOPRANGE clause can appear on the FUSE directive
@@ -48,4 +49,18 @@ subroutine loop_transformation_construct1
4849
v(x) = x * 2
4950
end do
5051
!$omp end fuse
52+
53+
!ERROR: Must be a constant value
54+
!$omp fuse looprange(a,2)
55+
do x = 1, i
56+
v(x) = x * 2
57+
end do
58+
!$omp end fuse
59+
60+
!ERROR: Must be a constant value
61+
!$omp fuse looprange(1,a)
62+
do x = 1, i
63+
v(x) = x * 2
64+
end do
65+
!$omp end fuse
5166
end subroutine

0 commit comments

Comments
 (0)