This is an archive of the discontinued LLVM Phabricator instance.

[compiler-rt] Add support for the dynamic shadow allocation
ClosedPublic

Authored by etienneb on Sep 30 2016, 9:33 AM.

Details

Summary

This patch is adding support for dynamic shadow allocation.

This is a merge and re-commit of the following patches.

[compiler-rt] Fix Asan build on Android
  https://reviews.llvm.org/D24768
[compiler-rt] Add support for the dynamic shadow allocation
  https://reviews.llvm.org/D23363

This patch needed to re-land at the same time:

[asan] Support dynamic shadow address instrumentation
  https://reviews.llvm.org/D23354

Event Timeline

etienneb updated this revision to Diff 73072.Sep 30 2016, 9:33 AM
etienneb retitled this revision from to [compiler-rt] Add support for the dynamic shadow allocation.
etienneb updated this object.
etienneb added reviewers: rnk, zaks.anna.
etienneb added subscribers: llvm-commits, chrisha.
rnk accepted this revision.Sep 30 2016, 10:04 AM
rnk edited edge metadata.

looks good

lib/sanitizer_common/sanitizer_posix.cc
362–363

I think UNREACHABLE("...") is preferred

Also, this API is not really implementable on Posix. You can parse /proc/self/maps on Linux and some BSDs, which doesn't even work if you don't have access to /proc. I think at some point we'll want to come back and redesign the abstractions we're using for virtual memory allocation, but today is not that day. We already discussed how the other APIs are way too Posix-y.

This revision is now accepted and ready to land.Sep 30 2016, 10:04 AM
zaks.anna accepted this revision.Sep 30 2016, 10:15 AM
zaks.anna edited edge metadata.

Thanks for working on this! Dynamic offset is very useful for iOS as well.

etienneb closed this revision.Sep 30 2016, 10:56 AM
This revision was automatically updated to reflect the committed changes.