diff options
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r-- | gcc/doc/invoke.texi | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b64ec18ae46..b28ef7e669e 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -596,6 +596,7 @@ Objective-C and Objective-C++ Dialects}. -fasan-shadow-offset=@var{number} -fsanitize-sections=@var{s1},@var{s2},... @gol -fsanitize-undefined-trap-on-error -fbounds-check @gol -fcf-protection=@r{[}full@r{|}branch@r{|}return@r{|}none@r{|}check@r{]} @gol +-fharden-compares -fharden-conditional-branches @gol -fstack-protector -fstack-protector-all -fstack-protector-strong @gol -fstack-protector-explicit -fstack-check @gol -fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol @@ -15550,6 +15551,24 @@ Currently the x86 GNU/Linux target provides an implementation based on Intel Control-flow Enforcement Technology (CET) which works for i686 processor or newer. +@item -fharden-compares +@opindex fharden-compares +For every logical test that survives gimple optimizations and is +@emph{not} the condition in a conditional branch (for example, +conditions tested for conditional moves, or to store in boolean +variables), emit extra code to compute and verify the reversed +condition, and to call @code{__builtin_trap} if the results do not +match. Use with @samp{-fharden-conditional-branches} to cover all +conditionals. + +@item -fharden-conditional-branches +@opindex fharden-conditional-branches +For every non-vectorized conditional branch that survives gimple +optimizations, emit extra code to compute and verify the reversed +condition, and to call @code{__builtin_trap} if the result is +unexpected. Use with @samp{-fharden-compares} to cover all +conditionals. + @item -fstack-protector @opindex fstack-protector Emit extra code to check for buffer overflows, such as stack smashing |