https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110246
Bug ID: 110246 Summary: Using variables of type CHAR or BYTE as array index does not work Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: modula2 Assignee: gaius at gcc dot gnu.org Reporter: ad...@tho-otto.de Target Milestone: --- In the following example: IMPLEMENTATION MODULE foo; FROM SYSTEM IMPORT BYTE; VAR arr: ARRAY['A'..'Z'] OF INTEGER; VAR ch: CHAR; BEGIN FOR ch := 'A' TO 'Z' DO arr[ch] := 0 END; END foo. I get error messages: /usr/lib64/gcc/x86_64-suse-linux/13/m2/m2pim/COROUTINES.def:37:1: error: type incompatibility, attempting to use a string ('_T38') when a CHAR is expected /usr/lib64/gcc/x86_64-suse-linux/13/m2/m2pim/COROUTINES.def:37:1: error: type incompatibility, attempting to use a string ('_T38') when a CHAR is expected /usr/lib64/gcc/x86_64-suse-linux/13/m2/m2pim/COROUTINES.def:37:1: error: type incompatibility, attempting to use a string ('_T38') when a CHAR is expected /usr/lib64/gcc/x86_64-suse-linux/13/m2/m2pim/COROUTINES.def:37:1: error: type incompatibility, attempting to use a string ('_T38') when a CHAR is expected (note also the totally unrelated source line in the error message) Changing the type of ch to BYTE i get instead: /usr/lib64/gcc/x86_64-suse-linux/13/m2/m2pim/COROUTINES.def:37:1: error: left operand ‘ch’ of type ‘BYTE’ is not allowed in binary expression +