From: Carey Williams Date: Mon, 17 Dec 2018 10:11:35 +0000 (+0000) Subject: [Docs] Expand -fstack-protector and -fstack-protector-all X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ee9b9291f15391989fa14b029bf60e9cf7215ca;p=clang [Docs] Expand -fstack-protector and -fstack-protector-all Improve the description of these command line options by providing specific heuristic information, as outlined for the ssp function attribute(s) in LLVM's documentation. Also rewords -fstack-protector-all for affinity. Differential Revision: https://reviews.llvm.org/D55428 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@349335 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index acf82c5ab2..50aa0833e1 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -1639,11 +1639,18 @@ def fno_signed_char : Flag<["-"], "fno-signed-char">, Group, Flags<[CC1Option]>, HelpText<"Char is unsigned">; def fsplit_stack : Flag<["-"], "fsplit-stack">, Group; def fstack_protector_all : Flag<["-"], "fstack-protector-all">, Group, - HelpText<"Force the usage of stack protectors for all functions">; + HelpText<"Enable stack protectors for all functions">; def fstack_protector_strong : Flag<["-"], "fstack-protector-strong">, Group, - HelpText<"Use a strong heuristic to apply stack protectors to functions">; + HelpText<"Enable stack protectors for some functions vulnerable to stack smashing. " + "Compared to -fstack-protector, this uses a stronger heuristic " + "that includes functions containing arrays of any size (and any type), " + "as well as any calls to alloca or the taking of an address from a local variable">; def fstack_protector : Flag<["-"], "fstack-protector">, Group, - HelpText<"Enable stack protectors for functions potentially vulnerable to stack smashing">; + HelpText<"Enable stack protectors for some functions vulnerable to stack smashing. " + "This uses a loose heuristic which considers functions vulnerable " + "if they contain a char (or 8bit integer) array or constant sized calls to " + "alloca, which are of greater size than ssp-buffer-size (default: 8 bytes). " + "All variable sized calls to alloca are considered vulnerable">; def fstandalone_debug : Flag<["-"], "fstandalone-debug">, Group, Flags<[CoreOption]>, HelpText<"Emit full debug info for all types used by the program">; def fno_standalone_debug : Flag<["-"], "fno-standalone-debug">, Group, Flags<[CoreOption]>,