]> gcc.gnu.org Git - gcc.git/commit
RISC-V: Enable stack clash in alloca
authorRaphael Moreira Zinsly <rzinsly@ventanamicro.com>
Mon, 22 Jul 2024 14:23:27 +0000 (11:23 -0300)
committerRaphael Moreira Zinsly <rzinsly@ventanamicro.com>
Fri, 9 Aug 2024 14:09:12 +0000 (11:09 -0300)
commit180ede3543e98ade8f809afe8be5af0eeaeff7bb
tree276bfe6c4de59f75e6e86aeb9852f613d19c270e
parent2862d99bfdae96a1d4b275fa3f3daad6206ff761
RISC-V: Enable stack clash in alloca

Add the TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE to riscv in
order to enable stack clash protection when using alloca.
The code and tests are the same used by aarch64.

gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_compute_frame_info): Update
outgoing args size.
(riscv_stack_clash_protection_alloca_probe_range): New.
(TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New.
* config/riscv/riscv.h
(STACK_CLASH_MIN_BYTES_OUTGOING_ARGS): New.
(STACK_DYNAMIC_OFFSET): New.

gcc/testsuite/ChangeLog:
* gcc.target/riscv/stack-check-14.c: New test.
* gcc.target/riscv/stack-check-15.c: New test.
* gcc.target/riscv/stack-check-alloca-1.c: New test.
* gcc.target/riscv/stack-check-alloca-2.c: New test.
* gcc.target/riscv/stack-check-alloca-3.c: New test.
* gcc.target/riscv/stack-check-alloca-4.c: New test.
* gcc.target/riscv/stack-check-alloca-5.c: New test.
* gcc.target/riscv/stack-check-alloca-6.c: New test.
* gcc.target/riscv/stack-check-alloca-7.c: New test.
* gcc.target/riscv/stack-check-alloca-8.c: New test.
* gcc.target/riscv/stack-check-alloca-9.c: New test.
* gcc.target/riscv/stack-check-alloca-10.c: New test.
* gcc.target/riscv/stack-check-alloca.h: New.
15 files changed:
gcc/config/riscv/riscv.cc
gcc/config/riscv/riscv.h
gcc/testsuite/gcc.target/riscv/stack-check-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-15.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/stack-check-alloca.h [new file with mode: 0644]
This page took 0.066132 seconds and 5 git commands to generate.