diff options
author | Sanjay Patel <spatel@rotateright.com> | 2019-11-11 09:27:17 -0500 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2019-11-11 09:29:40 -0500 |
commit | 3db8a3ef86e7b3331ab466a78c10a62be9e69829 (patch) | |
tree | 4f304d6196dda033d2b91d9774cc7278530911ff /lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp | |
parent | 9f48a160dd3fd56314cfbbe74c56e09aaab11566 (diff) | |
download | bcm5719-llvm-3db8a3ef86e7b3331ab466a78c10a62be9e69829.tar.gz bcm5719-llvm-3db8a3ef86e7b3331ab466a78c10a62be9e69829.zip |
[InstCombine] avoid crash from deleting an instruction that still has uses (PR43723) (3rd try)
Re-try because earlier attempts were reverted due to use-after-free.
Hopefully, diagnosed correctly this time - we replace/remove the
invariant.start first rather than the invariant.end to avoid angering
worklist-based iteration.
We gather a set of white-listed instructions in isAllocSiteRemovable() and then
replace/erase them. But we don't know in general if the instructions in the set
have uses amongst themselves, so order of deletion makes a difference.
There's already a special-case for the llvm.objectsize intrinsic, so add another
for llvm.invariant.start.
Should fix:
https://bugs.llvm.org/show_bug.cgi?id=43723
Differential Revision: https://reviews.llvm.org/D69977
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp')
0 files changed, 0 insertions, 0 deletions