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.
Showing
- gcc/config/riscv/riscv.cc 17 additions, 0 deletionsgcc/config/riscv/riscv.cc
- gcc/config/riscv/riscv.h 17 additions, 0 deletionsgcc/config/riscv/riscv.h
- gcc/testsuite/gcc.target/riscv/stack-check-14.c 24 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-14.c
- gcc/testsuite/gcc.target/riscv/stack-check-15.c 21 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-15.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-1.c 15 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-1.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-10.c 13 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-10.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-2.c 11 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-2.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-3.c 11 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-3.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-4.c 12 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-4.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-5.c 12 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-5.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-6.c 12 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-6.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-7.c 12 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-7.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-8.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-8.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca-9.c 13 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca-9.c
- gcc/testsuite/gcc.target/riscv/stack-check-alloca.h 15 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/stack-check-alloca.h
Loading
Please register or sign in to comment