aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/CommandLine.cpp
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2014-10-16 20:54:52 +0000
committerKostya Serebryany <kcc@google.com>2014-10-16 20:54:52 +0000
commit293dc9be6e3660377141b5998ee2987c3104e980 (patch)
treeaf584d5d8dde96d893932cd10cefd1ca7f9a75dd /llvm/lib/Support/CommandLine.cpp
parent899ded9cdf53b3d84c8d0e771851cc256296bfd2 (diff)
downloadllvm-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