diff options
author | Kostya Serebryany <kcc@google.com> | 2014-10-16 20:54:52 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2014-10-16 20:54:52 +0000 |
commit | 293dc9be6e3660377141b5998ee2987c3104e980 (patch) | |
tree | af584d5d8dde96d893932cd10cefd1ca7f9a75dd /llvm/lib/Support/CommandLine.cpp | |
parent | 899ded9cdf53b3d84c8d0e771851cc256296bfd2 (diff) | |
download | llvm-293dc9be6e3660377141b5998ee2987c3104e980.zip llvm-293dc9be6e3660377141b5998ee2987c3104e980.tar.gz llvm-293dc9be6e3660377141b5998ee2987c3104e980.tar.bz2 |
Insert poisoned paddings between fields in C++ classes so that AddressSanitizer can find intra-object-overflow bugs
Summary:
The general approach is to add extra paddings after every field
in AST/RecordLayoutBuilder.cpp, then add code to CTORs/DTORs that poisons the paddings
(CodeGen/CGClass.cpp).
Everything is done under the flag -fsanitize-address-field-padding.
The blacklist file (-fsanitize-blacklist) allows to avoid the transformation
for given classes or source files.
See also https://code.google.com/p/address-sanitizer/wiki/IntraObjectOverflow
Test Plan: run SPEC2006 and some of the Chromium tests with -fsanitize-address-field-padding
Reviewers: samsonov, rnk, rsmith
Reviewed By: rsmith
Subscribers: majnemer, cfe-commits
Differential Revision: http://reviews.llvm.org/D5687
llvm-svn: 219961
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions