aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorLeonard Grey <lgrey@chromium.org>2022-09-07 13:21:09 -0400
committerLeonard Grey <lgrey@chromium.org>2022-09-14 16:46:40 -0400
commited2c3f46f5a74de9965c424a3a8ca99546b2c939 (patch)
treeec466072a6fcb44bc222ce5e5aca338e7836cc1e /llvm/lib/CodeGen/MachineOperand.cpp
parentc69b26911168cdcf49c7c7162d7b44ce4ed40c37 (diff)
downloadllvm-ed2c3f46f5a74de9965c424a3a8ca99546b2c939.zip
llvm-ed2c3f46f5a74de9965c424a3a8ca99546b2c939.tar.gz
llvm-ed2c3f46f5a74de9965c424a3a8ca99546b2c939.tar.bz2
[lsan][Darwin] Scan libdispatch and Foundation memory regions
libdispatch uses its own heap (_dispatch_main_heap) for some allocations, including the dispatch_continuation_t that holds a dispatch source's event handler. Objective-C block trampolines (creating methods at runtime with a block as the implementations) use the VM_MEMORY_FOUNDATION region (see https://github.com/apple-oss-distributions/objc4/blob/8701d5672d3fd3cd817aeb84db1077aafe1a1604/runtime/objc-block-trampolines.mm#L371). This change scans both regions to fix false positives. See tests for details; unfortunately I was unable to reduce the trampoline example with imp_implementationWithBlock on a new class, so I'm resorting to something close to the bug as seen in the wild. Differential Revision: https://reviews.llvm.org/D129385
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
0 files changed, 0 insertions, 0 deletions