https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112946

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Gaius Mulley <ga...@gcc.gnu.org>:

https://gcc.gnu.org/g:7d7a480eedf0a195318d0fce2c9c57acae43ec9d

commit r14-6596-g7d7a480eedf0a195318d0fce2c9c57acae43ec9d
Author: Gaius Mulley <gaiusm...@gmail.com>
Date:   Fri Dec 15 15:26:48 2023 +0000

    PR modula2/112946 ICE assignment of string to enumeration or set

    This patch introduces type checking during FoldBecomes and also
    adds set/string/enum checking to the type checker.  FoldBecomes
    has been re-written, tidied up and re-factored.

    gcc/m2/ChangeLog:

            PR modula2/112946
            * gm2-compiler/M2Check.mod (checkConstMeta): New procedure
            function.
            (checkConstEquivalence): New procedure function.
            (doCheckPair): Add call to checkConstEquivalence.
            * gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Call
            FoldBecomes with reduced parameters.
            (FoldBecomes): Re-write.
            (TryDeclareConst): New procedure.
            (RemoveQuads): New procedure.
            (DeclaredOperandsBecomes): New procedure function.
            (TypeCheckBecomes): New procedure function.
            (PerformFoldBecomes): New procedure.
            * gm2-compiler/M2Range.mod (FoldAssignment): Call
            AssignmentTypeCompatible to check des expr compatibility.
            * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Remove
            parameter lst.
            (FilterCheckReadBeforeInitQuad): Remove parameter lst.
            (CheckReadBeforeInitFirstBasicBlock): Remove parameter lst.
            Call FilterCheckReadBeforeInitQuad without lst.

    gcc/testsuite/ChangeLog:

            PR modula2/112946
            * gm2/iso/fail/badassignment.mod: New test.
            * gm2/iso/fail/badexpression.mod: New test.
            * gm2/iso/fail/badexpression2.mod: New test.

    Signed-off-by: Gaius Mulley <gaiusm...@gmail.com>

Reply via email to