https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114026
Bug ID: 114026
Summary: incorrect location during for loop type check
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: modula2
Assignee: gaius at gcc dot gnu.org
Reporter: gaius at gcc dot gnu.org
Target Milestone: ---
If a for loop has a type expression incompatibility it uses an incorrect
location (0). For example:
$ cat forloop.mod
MODULE forloop ;
PROCEDURE init ;
VAR
i: INTEGER ;
c: CARDINAL ;
BEGIN
c := 10 ;
FOR i := 0 TO c DO (* INTEGER CARDINAL expression incompatible. *)
END
END init ;
BEGIN
init
END forloop.
$ gm2 forloop.mod
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/14.0.1/m2/m2pim/Indexing.mod: In
function ‘init’:
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/14.0.1/m2/m2pim/Indexing.mod:346:1:
error: In procedure ‘init’: type incompatibility between ‘INTEGER’ and
‘CARDINAL’