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

--- Comment #4 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:c8024088ccc263833d005afe7df835109db1965b

commit r13-7659-gc8024088ccc263833d005afe7df835109db1965b
Author: Gaius Mulley <gaiusm...@gmail.com>
Date:   Mon Jul 31 01:05:20 2023 +0100

    PR modula2/110174 Bugfixes to M2GenGCC.mod:CodeInline preventing an ICE

    This patch calls skip_const_decl before chaining parameter values and
    ensures that all strings passed to build_stmt (..., ASM_EXPR, ...) are
    nul terminated.  It also improves the accuracy of locations in
    function calls and asm statements.

    gcc/m2/

            PR modula2/110174
            * gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
            function.
            * gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
            function.
            * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
            skip_const_decl before chaining the parameter value.
            Use PromoteToCString to ensure the string is nul terminated.
            (CodeInline): Remove all parameters and replace with quad.
            Use GetQuadOtok to get operand token numbers.
            Remove call to DeclareConstant and replace it with
PromoteToCString.
            * gm2-compiler/M2Quads.def (BuildInline): Rename into ...
            (BuildAsm): ... this.
            * gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
            (BuildAsm): ... this.
            (BuildAsmElement): Add debugging.
            * gm2-compiler/P1Build.bnf: Remove import of BuildInline.
            * gm2-compiler/P2Build.bnf: Remove import of BuildInline.
            * gm2-compiler/P3Build.bnf: Remove import of BuildInline and
            import BuildAsm.
            * gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
            * gm2-libs-iso/SysClock.mod (foo): Remove.
            * gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
            Rename variable t to src.
            * m2pp.cc (pf): Correct block comment.
            (pe): Correct block comment.
            (m2pp_asm_expr): New function.
            (m2pp_statement): Call m2pp_asm_expr.

    gcc/testsuite/

            PR modula2/110174
            * gm2/pim/pass/program2.mod: Remove import of BuildInline.
            * gm2/extensions/asm/fail/extensions-asm-fail.exp: New test.
            * gm2/extensions/asm/fail/stressreturn.mod: New test.
            * gm2/extensions/asm/pass/extensions-asm-pass.exp: New test.
            * gm2/extensions/asm/pass/fooasm.mod: New test.

    (cherry picked from commit c4637cbed3f23095b98962b41063380c4ab9eda9)

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

Reply via email to