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