Add the heuristic to differentiate SSPStrong from SSPRequired.
authorBill Wendling <isanbard@gmail.com>
Wed, 23 Jan 2013 06:43:53 +0000 (06:43 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 23 Jan 2013 06:43:53 +0000 (06:43 +0000)
commite4957fb9b77a4fbdf711b9e5a722d107d86ccc50
tree7cb29431e3cd756a0e20c187026f7031fec3e61f
parent114baee1fa017daefad2339c77b45b9ca3d79a41
Add the heuristic to differentiate SSPStrong from SSPRequired.

The requirements of the strong heuristic are:

* A Protector is required for functions which contain an array, regardless of
  type or length.

* A Protector is required for functions which contain a structure/union which
  contains an array, regardless of type or length.  Note, there is no limit to
  the depth of nesting.

* A protector is required when the address of a local variable (i.e., stack
  based variable) is exposed. (E.g., such as through a local whose address is
  taken as part of the RHS of an assignment or a local whose address is taken as
  part of a function argument.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173231 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
lib/CodeGen/StackProtector.cpp
test/CodeGen/X86/stack-protector.ll