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
<ga...@gcc.gnu.org>:

https://gcc.gnu.org/g:3e9aaa9bcb2fc64e64f4e8a2aa0f6f7395a21c52

commit r13-7622-g3e9aaa9bcb2fc64e64f4e8a2aa0f6f7395a21c52
Author: Gaius Mulley <gaiusm...@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 <gaiusm...@gmail.com>

Reply via email to