* common.opt (-fstack-clash-protection): New option.
commit74af142db7e145d887fc63f9beb342027095e285
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2017 04:56:54 +0000 (20 04:56 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2017 04:56:54 +0000 (20 04:56 +0000)
tree2808704ba1fbdc80b9f1cc9c3962f746872013ef
parente324f34afd05c1c47073eec85ee72960e5c3fa53
* common.opt (-fstack-clash-protection): New option.
* flag-types.h (enum stack_check_type): Note difference between
-fstack-check= and -fstack-clash-protection.
* params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
(PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
* toplev.c (process_options): Issue warnings/errors for cases
not handled with -fstack-clash-protection.
* doc/invoke.texi (-fstack-clash-protection): Document new option.
(-fstack-check): Note additional problem with -fstack-check=generic.
Note that -fstack-check is primarily for Ada and refer users
to -fstack-clash-protection for stack-clash-protection.
Document new params for stack clash protection.

* gcc.dg/stack-check-2.c: New test.
* lib/target-supports.exp
(check_effective_target_supports_stack_clash_protection): New function.
(check_effective_target_frame_pointer_for_non_leaf): Likewise.
(check_effective_target_caller_implicit_probes): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@252994 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/flag-types.h
gcc/params.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/stack-check-2.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp
gcc/toplev.c