public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work @ 2023-06-14 5:11 admin@tho-otto.de 2023-06-14 5:27 ` [Bug modula2/110246] " admin@tho-otto.de ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: admin@tho-otto.de @ 2023-06-14 5:11 UTC (permalink / raw) To: gcc-bugs 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: admin@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 + ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug modula2/110246] Using variables of type CHAR or BYTE as array index does not work 2023-06-14 5:11 [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work admin@tho-otto.de @ 2023-06-14 5:27 ` admin@tho-otto.de 2023-07-28 14:12 ` cvs-commit at gcc dot gnu.org ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: admin@tho-otto.de @ 2023-06-14 5:27 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110246 --- Comment #1 from Thorsten Otto <admin@tho-otto.de> --- Edit: the problem seems to be caused by using a FOR loop. Changing it to a similar WHILE loop: ch := 'A'; WHILE ch <= 'Z' DO arr[ch] := 0; INC(ch); END; does work without problems. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug modula2/110246] Using variables of type CHAR or BYTE as array index does not work 2023-06-14 5:11 [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work admin@tho-otto.de 2023-06-14 5:27 ` [Bug modula2/110246] " admin@tho-otto.de @ 2023-07-28 14:12 ` cvs-commit at gcc dot gnu.org 2023-07-28 14:13 ` gaius at gcc dot gnu.org 2023-07-28 14:14 ` gaius at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-07-28 14:12 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110246 --- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-13 branch has been updated by Gaius Mulley <gaius@gcc.gnu.org>: https://gcc.gnu.org/g:3e9aaa9bcb2fc64e64f4e8a2aa0f6f7395a21c52 commit r13-7622-g3e9aaa9bcb2fc64e64f4e8a2aa0f6f7395a21c52 Author: Gaius Mulley <gaiusmod2@gmail.com> Date: Fri Jul 28 15:00:29 2023 +0100 PR modula2/109729 cannot use a CHAR type as a FOR loop iterator This patch introduces a new quadruple ArithAddOp which is used in the construction of FOR loop to ensure that when constant folding is applied it does not concatenate two constant char operands into a string constant. Overloading only occurs with constant operands. gcc/m2/ChangeLog: PR modula2/109729 PR modula2/110246 * gm2-compiler/M2GenGCC.mod (CodeStatement): Detect ArithAddOp and call CodeAddChecked. (ResolveConstantExpressions): Detect ArithAddOp and call FoldArithAdd. (FoldArithAdd): New procedure. (FoldAdd): Refactor to use FoldArithAdd. * gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp. * gm2-compiler/M2Quads.mod: Remove commented imports. (QuadFrame): Changed comments to use GNU coding standards. (ArithPlusTok): New global variable. (BuildForToByDo): Use ArithPlusTok instead of PlusTok. (MakeOp): Detect ArithPlusTok and return ArithAddOp. (WriteQuad): Add ArithAddOp clause. (WriteOperator): Add ArithAddOp clause. (Init): Initialize ArithPlusTok. gcc/testsuite/ChangeLog: PR modula2/109729 * gm2/pim/run/pass/ForChar.mod: New test. (cherry picked from commit ac7c9954ece9a75c5e7c3b76a4800f2432002487) Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug modula2/110246] Using variables of type CHAR or BYTE as array index does not work 2023-06-14 5:11 [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work admin@tho-otto.de 2023-06-14 5:27 ` [Bug modula2/110246] " admin@tho-otto.de 2023-07-28 14:12 ` cvs-commit at gcc dot gnu.org @ 2023-07-28 14:13 ` gaius at gcc dot gnu.org 2023-07-28 14:14 ` gaius at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: gaius at gcc dot gnu.org @ 2023-07-28 14:13 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110246 Gaius Mulley <gaius at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2023-07-28 --- Comment #3 from Gaius Mulley <gaius at gcc dot gnu.org> --- Confirmed thanks for the bug report. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug modula2/110246] Using variables of type CHAR or BYTE as array index does not work 2023-06-14 5:11 [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work admin@tho-otto.de ` (2 preceding siblings ...) 2023-07-28 14:13 ` gaius at gcc dot gnu.org @ 2023-07-28 14:14 ` gaius at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: gaius at gcc dot gnu.org @ 2023-07-28 14:14 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110246 Gaius Mulley <gaius at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Gaius Mulley <gaius at gcc dot gnu.org> --- Closing now that the patch has been applied. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-07-28 14:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-06-14 5:11 [Bug modula2/110246] New: Using variables of type CHAR or BYTE as array index does not work admin@tho-otto.de 2023-06-14 5:27 ` [Bug modula2/110246] " admin@tho-otto.de 2023-07-28 14:12 ` cvs-commit at gcc dot gnu.org 2023-07-28 14:13 ` gaius at gcc dot gnu.org 2023-07-28 14:14 ` gaius at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).