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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:1a132c4d7cdb22cbab85b8596418daa2c3157812

commit r11-7295-g1a132c4d7cdb22cbab85b8596418daa2c3157812
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Feb 19 13:05:47 2021 +0100

    arm: Fix ICE with -fstack-protector -mpure-code [PR98998]

    The vla15.C testcase ICEs with
    -mcpu=cortex-m1 -mpure-code -fstack-protector -mthumb
    as what force_const_mem returns (a SYMBOL_REF) is not a valid
    memory address.
    Previously the code was moving the address of the force_const_mem
    into a register rather than the content of that MEM, so that instruction
    must have been supported and loading from a MEM with a single REG base
ought
    to be valid too.

    2021-02-19  Jakub Jelinek  <ja...@redhat.com>

            PR target/98998
            * config/arm/arm.md (*stack_protect_combined_set_insn,
            *stack_protect_combined_test_insn): If force_const_mem result
            is not valid general operand, force its address into the
destination
            register first.

            * gcc.target/arm/pure-code/pr98998.c: New test.

Reply via email to