1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

Neuter stack protectors by only checking character arrays. This is what GCC

does.

llvm-svn: 84916
This commit is contained in:
Bill Wendling 2009-10-23 00:01:05 +00:00
parent 82c1dd9754
commit 283fb69c0a

View File

@ -111,11 +111,16 @@ bool StackProtector::RequiresStackProtector() const {
// protectors.
return true;
if (const ArrayType *AT = dyn_cast<ArrayType>(AI->getAllocatedType()))
if (const ArrayType *AT = dyn_cast<ArrayType>(AI->getAllocatedType())) {
// We apparently only care about character arrays.
if (AT->getElementType() != Type::getInt8Ty(AT->getContext()))
continue;
// If an array has more than SSPBufferSize bytes of allocated space,
// then we emit stack protectors.
if (SSPBufferSize <= TD->getTypeAllocSize(AT))
return true;
}
}
}