[PATCH] Implement variable-sized alloca instrumentation.

Maxim Ostapenko m.ostapenko at partner.samsung.com
Wed Nov 19 06:06:30 PST 2014


Updated according to last review.

Now we don't keep PartialRzAddr until the end of function, we can just unpoison RightRzAddr and RightRzAddr - 32 with two stores into RightRzAddrShadow and RightRzAddrShadow - 4.
If PartialRzAddr == RightRzAddr we will perform one redundant store into user's memory shadow during unpoisoning, but perhaps this should be actually fine.

http://reviews.llvm.org/D6055

Files:
  lib/Transforms/Instrumentation/AddressSanitizer.cpp
  lib/asan/asan_internal.h
  lib/asan/asan_report.cc
  test/Instrumentation/AddressSanitizer/instrument-dynamic-allocas.ll
  test/asan/TestCases/alloca_big_alignment.cc
  test/asan/TestCases/alloca_detect_custom_size_.cc
  test/asan/TestCases/alloca_instruments_all_paddings.cc
  test/asan/TestCases/alloca_overflow_partial.cc
  test/asan/TestCases/alloca_overflow_right.cc
  test/asan/TestCases/alloca_safe_access.cc
  test/asan/TestCases/alloca_underflow_left.cc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6055.16385.patch
Type: text/x-patch
Size: 20873 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141119/7c55bee1/attachment.bin>


More information about the llvm-commits mailing list