[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CHAR as FOR loop control variable
From: |
Michael Riedl |
Subject: |
CHAR as FOR loop control variable |
Date: |
Tue, 2 May 2023 13:08:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
Hallo Gaius,
just recognised that GM2 (14.0.0) does not like a CHAR type FOR loop
control variable any more ... :-)
The compilation gave quite miss-leading error messages
mriedl@laptop:~/Modula-2/InOut/quellen.gm2$make RealConvert.o
~/Modula-2/Numerik/TestRoutinen/Tools/convreal < RealConvert.mi >
RealConvert.mod
gm2 -c -fiso -flibs=iso -I
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso -I
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2pim -I
/home/mriedl/Modula-2/Numerik/quellen.gm2 -I
/home/mriedl/Modula-2/InOut/quellen.gm2 -I
/home/mriedl/Modula-2/Numerik/TestRoutinen/LinAlg -L
/home/mriedl/Modula-2/Numerik/quellen.gm2 -L
/home/mriedl/Modula-2/InOut/quellen.gm2 -L
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso -L
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2pim -O2 -g -O2
-fno-m2-plugin RealConvert.mod
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
Makefile:385: recipe for target 'RealConvert.o' failed
make: *** [RealConvert.o] Error 1
Here the simplified code reproducing the error
MODULE RealConvert;
FROM ConvTypes IMPORT ConvResults;
VAR RKonv : ARRAY ['0'..'9'] OF REAL;
IKonv : ARRAY ['0'..'9'] OF CARDINAL;
KommaZeichen : CHAR; (* Macht 1,0 statt 1.0 in Ausgaben m"oglich. *)
Ziffern : ARRAY [0..11] OF CHAR; (* + 0C *)
VAR c : CHAR;
p : CARDINAL;
BEGIN
(* Does not work ... *)
p:=0;
FOR c:='0' TO '9' DO RKonv[c]:=VAL(REAL,p); IKonv[c]:=p; INC(p); END;
(* This is essentially doing the same as the loop before - does
work *)
IKonv["0"] := 0; IKonv["1"] := 1; IKonv["2"] := 2;
IKonv["3"] := 3; IKonv["4"] := 4; IKonv["5"] := 5;
IKonv["6"] := 6; IKonv["7"] := 7; IKonv["8"] := 8;
IKonv["9"] := 9;
RKonv["0"] := 0.0; RKonv["1"] := 1.0; RKonv["2"] := 2.0;
RKonv["3"] := 3.0; RKonv["4"] := 4.0; RKonv["5"] := 5.0;
RKonv["6"] := 6.0; RKonv["7"] := 7.0; RKonv["8"] := 8.0;
RKonv["9"] := 9.0;
KommaZeichen:='.';
Ziffern := "0123456789"; (* wg. GM2 *)
END RealConvert.
The compilation gave quite miss-leading error messages
mriedl@laptop:~/Modula-2/InOut/quellen.gm2$make RealConvert.o
~/Modula-2/Numerik/TestRoutinen/Tools/convreal < RealConvert.mi >
RealConvert.mod
gm2 -c -fiso -flibs=iso -I
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso -I
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2pim -I
/home/mriedl/Modula-2/Numerik/quellen.gm2 -I
/home/mriedl/Modula-2/InOut/quellen.gm2 -I
/home/mriedl/Modula-2/Numerik/TestRoutinen/LinAlg -L
/home/mriedl/Modula-2/Numerik/quellen.gm2 -L
/home/mriedl/Modula-2/InOut/quellen.gm2 -L
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso -L
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2pim -O2 -g -O2
-fno-m2-plugin RealConvert.mod
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
/usr/local/gm2/lib/gcc/i686-pc-linux-gnu//14.0.0/m2/m2iso/ConvTypes.def:38:1:
Fehler: type incompatibility, attempting to use a string ('_T37') when a
CHAR is expected
Makefile:385: recipe for target 'RealConvert.o' failed
make: *** [RealConvert.o] Error 1
(for the complete module it made similar claims about module "ASCII"
which was not even directly imported to the (implementation) module ...
Gruß
Michael
- CHAR as FOR loop control variable,
Michael Riedl <=
Re: CHAR as FOR loop control variable, Gaius Mulley, 2023/05/04
Re: CHAR as FOR loop control variable, Gaius Mulley, 2023/05/04