[LoopReroll] Add an extra defensive check to avoid SCEV assertion.
[llvm-project.git] / flang / test / Semantics / shape.f90
blob00c7bfd46820bbd816ee731de89dc70ad8ddfdae
1 ! RUN: %S/test_errors.sh %s %t %flang_fc1
2 ! REQUIRES: shell
3 ! Test comparisons that use the intrinsic SHAPE() as an operand
4 program testShape
5 contains
6 subroutine sub1(arrayDummy)
7 integer :: arrayDummy(:)
8 integer, allocatable :: arrayDeferred(:)
9 integer :: arrayLocal(2) = [88, 99]
10 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
11 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
12 if (all(shape(arrayDummy)==shape(8))) then
13 print *, "hello"
14 end if
15 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
16 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
17 if (all(shape(27)==shape(arrayDummy))) then
18 print *, "hello"
19 end if
20 if (all(64==shape(arrayDummy))) then
21 print *, "hello"
22 end if
23 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
24 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
25 if (all(shape(arrayDeferred)==shape(8))) then
26 print *, "hello"
27 end if
28 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
29 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
30 if (all(shape(27)==shape(arrayDeferred))) then
31 print *, "hello"
32 end if
33 if (all(64==shape(arrayDeferred))) then
34 print *, "hello"
35 end if
36 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
37 !ERROR: Dimension 1 of left operand has extent 1, but right operand has extent 0
38 if (all(shape(arrayLocal)==shape(8))) then
39 print *, "hello"
40 end if
41 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
42 !ERROR: Dimension 1 of left operand has extent 0, but right operand has extent 1
43 if (all(shape(27)==shape(arrayLocal))) then
44 print *, "hello"
45 end if
46 if (all(64==shape(arrayLocal))) then
47 print *, "hello"
48 end if
49 end subroutine sub1
50 end program testShape