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’