xref: /llvm-project/flang/test/Semantics/unsigned-errors.f90 (revision fc97d2e68b03bc2979395e84b645e5b3ba35aecd)
1*fc97d2e6SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 -funsigned
2*fc97d2e6SPeter Klausler
3*fc97d2e6SPeter Klauslerimplicit unsigned(u)
4*fc97d2e6SPeter Klauslerreal a(10)
5*fc97d2e6SPeter Klausler
6*fc97d2e6SPeter Klausler!ERROR: Must have INTEGER type, but is UNSIGNED(4)
7*fc97d2e6SPeter Klauslerreal(kind=4u) x
8*fc97d2e6SPeter Klausler
9*fc97d2e6SPeter Klausler!ERROR: Both operands must be UNSIGNED
10*fc97d2e6SPeter Klauslerprint *, 0 + 1u
11*fc97d2e6SPeter Klausler!ERROR: Both operands must be UNSIGNED
12*fc97d2e6SPeter Klauslerprint *, 0u + 1
13*fc97d2e6SPeter Klausler!ERROR: Both operands must be UNSIGNED
14*fc97d2e6SPeter Klauslerprint *, 0. + 1u
15*fc97d2e6SPeter Klausler!ERROR: Both operands must be UNSIGNED
16*fc97d2e6SPeter Klauslerprint *, 0u + 1.
17*fc97d2e6SPeter Klausler
18*fc97d2e6SPeter Klauslerprint *, -0u ! ok
19*fc97d2e6SPeter Klauslerprint *, 0u + 1u ! ok
20*fc97d2e6SPeter Klauslerprint *, 0u - 1u ! ok
21*fc97d2e6SPeter Klauslerprint *, 0u * 1u ! ok
22*fc97d2e6SPeter Klauslerprint *, 0u / 1u ! ok
23*fc97d2e6SPeter Klausler!ERROR: Operands must not be UNSIGNED
24*fc97d2e6SPeter Klauslerprint *, 0u ** 1u
25*fc97d2e6SPeter Klausler
26*fc97d2e6SPeter Klauslerprint *, uint((0.,0.)) ! ok
27*fc97d2e6SPeter Klauslerprint *, uint(z'123') ! ok
28*fc97d2e6SPeter Klausler!ERROR: Actual argument for 'a=' has bad type 'CHARACTER(KIND=1,LEN=1_8)'
29*fc97d2e6SPeter Klauslerprint *, uint("a")
30*fc97d2e6SPeter Klausler!ERROR: Actual argument for 'a=' has bad type 'LOGICAL(4)'
31*fc97d2e6SPeter Klauslerprint *, uint(.true.)
32*fc97d2e6SPeter Klausler!ERROR: Actual argument for 'l=' has bad type 'UNSIGNED(4)'
33*fc97d2e6SPeter Klauslerprint *, logical(0u)
34*fc97d2e6SPeter Klausler!ERROR: Actual argument for 'i=' has bad type 'UNSIGNED(4)'
35*fc97d2e6SPeter Klauslerprint *, char(0u)
36*fc97d2e6SPeter Klausler
37*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
38*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
39*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
40*fc97d2e6SPeter Klauslerdo u = 0u, 1u
41*fc97d2e6SPeter Klauslerend do
42*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
43*fc97d2e6SPeter Klauslerdo u = 0, 1
44*fc97d2e6SPeter Klauslerend do
45*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
46*fc97d2e6SPeter Klausler!ERROR: DO controls should be INTEGER
47*fc97d2e6SPeter Klauslerdo j = 0u, 1u
48*fc97d2e6SPeter Klauslerend do
49*fc97d2e6SPeter Klausler
50*fc97d2e6SPeter Klauslerselect case (u) ! ok
51*fc97d2e6SPeter Klauslercase(0u) ! ok
52*fc97d2e6SPeter Klausler!ERROR: CASE value has type 'INTEGER(4)' which is not compatible with the SELECT CASE expression's type 'UNSIGNED(4)'
53*fc97d2e6SPeter Klauslercase(1)
54*fc97d2e6SPeter Klauslerend select
55*fc97d2e6SPeter Klausler
56*fc97d2e6SPeter Klauslerselect case (j)
57*fc97d2e6SPeter Klausler!ERROR: CASE value has type 'UNSIGNED(4)' which is not compatible with the SELECT CASE expression's type 'INTEGER(4)'
58*fc97d2e6SPeter Klauslercase(0u)
59*fc97d2e6SPeter Klauslerend select
60*fc97d2e6SPeter Klausler
61*fc97d2e6SPeter Klausleru = z'1' ! ok
62*fc97d2e6SPeter Klausler!ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types UNSIGNED(4) and INTEGER(4)
63*fc97d2e6SPeter Klausleru = 1
64*fc97d2e6SPeter Klausler!ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types INTEGER(4) and UNSIGNED(4)
65*fc97d2e6SPeter Klauslerj = 1u
66*fc97d2e6SPeter Klausler
67*fc97d2e6SPeter Klausler!ERROR: Must have INTEGER type, but is UNSIGNED(4)
68*fc97d2e6SPeter Klauslerwrite(6u,*) 'hi'
69*fc97d2e6SPeter Klausler
70*fc97d2e6SPeter Klausler!ERROR: ARITHMETIC IF expression must not be an UNSIGNED expression
71*fc97d2e6SPeter Klauslerif (1u) 1,1,1
72*fc97d2e6SPeter Klausler1 continue
73*fc97d2e6SPeter Klausler
74*fc97d2e6SPeter Klausler!ERROR: Must have INTEGER type, but is UNSIGNED(4)
75*fc97d2e6SPeter Klauslerprint *, a(u)
76*fc97d2e6SPeter Klausler
77*fc97d2e6SPeter Klauslerend
78