Enhanced documentation for -fstack-protector (and friends)

Hello,

I have been looking into Clang’s/LLVM’s stack-protector implementation and noticed that Clang’s documentation for -fstack-protector, -fstack-protector-strong and -fstack-protector-all is quite basic (limited to the command line reference entries: Clang command line argument reference — Clang 16.0.0git documentation).

I wanted to ask whether the descriptions for these options have been kept deliberately vague (e.g. “a strong heuristic”)? I note that whilst this was brought up on the mailing list previously (see: http://lists.llvm.org/pipermail/cfe-dev/2017-April/053662.html), and a better explanation was given, there’s still no sign of this information in the documentation. Would anyone have an objection to a docs patch expanding on the specifics of what each of these protects?

I’m happy to do the leg work here, I just wanted to get a general consensus before I looked at prepping a patch.

Cheers!