[asan] instrument memory accesses with unusual sizes
authorKostya Serebryany <kcc@google.com>
Tue, 19 Feb 2013 11:29:21 +0000 (11:29 +0000)
committerKostya Serebryany <kcc@google.com>
Tue, 19 Feb 2013 11:29:21 +0000 (11:29 +0000)
commit6ecccdbb2bf24a011b9c8ecbdd39be5a02269670
treef463427001684e86ca0b07af6f858cf4060ab9c6
parentc61e83e6de778e5bd937e401564fe6bd0836b727
[asan] instrument memory accesses with unusual sizes

This patch makes asan instrument memory accesses with unusual sizes (e.g. 5 bytes or 10 bytes), e.g. long double or
packed structures.
Instrumentation is done with two 1-byte checks
(first and last bytes) and if the error is found
__asan_report_load_n(addr, real_size) or
__asan_report_store_n(addr, real_size)
is called.

Also, call these two new functions in memset/memcpy
instrumentation.

asan-rt part will follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175507 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/AddressSanitizer.cpp
test/Instrumentation/AddressSanitizer/basic.ll