diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-08-21 16:15:24 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-08-21 16:15:24 +0000 |
commit | 35907e98626b33f6406dc498201fc59ced282c8a (patch) | |
tree | b117824fcfc8b15dc0ba06ddfab971e1e0a187c9 /lib/CodeGen/StackProtector.cpp | |
parent | 7996d045825373d2bd0dbc8ad1d47bb03e81c368 (diff) | |
download | external_llvm-35907e98626b33f6406dc498201fc59ced282c8a.zip external_llvm-35907e98626b33f6406dc498201fc59ced282c8a.tar.gz external_llvm-35907e98626b33f6406dc498201fc59ced282c8a.tar.bz2 |
Add support for the --param ssp-buffer-size= driver option.
PR9673
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162284 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/StackProtector.cpp')
-rw-r--r-- | lib/CodeGen/StackProtector.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/CodeGen/StackProtector.cpp b/lib/CodeGen/StackProtector.cpp index b31db5f..a04ac3f 100644 --- a/lib/CodeGen/StackProtector.cpp +++ b/lib/CodeGen/StackProtector.cpp @@ -28,16 +28,10 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetLowering.h" +#include "llvm/Target/TargetOptions.h" #include "llvm/ADT/Triple.h" using namespace llvm; -// SSPBufferSize - The lower bound for a buffer to be considered for stack -// smashing protection. -static cl::opt<unsigned> -SSPBufferSize("stack-protector-buffer-size", cl::init(8), - cl::desc("Lower bound for a buffer to be considered for " - "stack protection")); - namespace { class StackProtector : public FunctionPass { /// TLI - Keep a pointer of a TargetLowering to consult for determining @@ -111,8 +105,8 @@ bool StackProtector::runOnFunction(Function &Fn) { bool StackProtector::ContainsProtectableArray(Type *Ty, bool InStruct) const { if (!Ty) return false; if (ArrayType *AT = dyn_cast<ArrayType>(Ty)) { + const TargetMachine &TM = TLI->getTargetMachine(); if (!AT->getElementType()->isIntegerTy(8)) { - const TargetMachine &TM = TLI->getTargetMachine(); Triple Trip(TM.getTargetTriple()); // If we're on a non-Darwin platform or we're inside of a structure, don't @@ -123,7 +117,7 @@ bool StackProtector::ContainsProtectableArray(Type *Ty, bool InStruct) const { // If an array has more than SSPBufferSize bytes of allocated space, then we // emit stack protectors. - if (SSPBufferSize <= TLI->getTargetData()->getTypeAllocSize(AT)) + if (TM.Options.SSPBufferSize <= TLI->getTargetData()->getTypeAllocSize(AT)) return true; } |