summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2019-04-30 08:35:14 +0000
committerAlexander Potapenko <glider@google.com>2019-04-30 08:35:14 +0000
commit06d00afa61eef8f7f501ebdb4e8612ea43ec2d78 (patch)
tree771fa94ac98c9370a1abff904532048e0842dcff /lldb/packages/Python/lldbsuite/test
parenta475da36eb5013143c19074e3edfc8977ed15b2a (diff)
downloadbcm5719-llvm-06d00afa61eef8f7f501ebdb4e8612ea43ec2d78.tar.gz
bcm5719-llvm-06d00afa61eef8f7f501ebdb4e8612ea43ec2d78.zip
MSan: handle llvm.lifetime.start intrinsic
Summary: When a variable goes into scope several times within a single function or when two variables from different scopes share a stack slot it may be incorrect to poison such scoped locals at the beginning of the function. In the former case it may lead to false negatives (see https://github.com/google/sanitizers/issues/590), in the latter - to incorrect reports (because only one origin remains on the stack). If Clang emits lifetime intrinsics for such scoped variables we insert code poisoning them after each call to llvm.lifetime.start(). If for a certain intrinsic we fail to find a corresponding alloca, we fall back to poisoning allocas for the whole function, as it's now impossible to tell which alloca was missed. The new instrumentation may slow down hot loops containing local variables with lifetime intrinsics, so we allow disabling it with -mllvm -msan-handle-lifetime-intrinsics=false. Reviewers: eugenis, pcc Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60617 llvm-svn: 359536
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud