diff options
author | John McCall <rjmccall@apple.com> | 2021-10-08 05:20:45 -0400 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2021-10-08 05:44:06 -0400 |
commit | 5ab6ee75994d645725264e757d67bbb1c96fb2b6 (patch) | |
tree | 85139e61b65a6ad5311f313f6898309bb09fba24 /lldb/unittests/ScriptInterpreter/Python | |
parent | 35ebe4cc24f87397762e35831953c4bfe5f52def (diff) | |
download | llvm-5ab6ee75994d645725264e757d67bbb1c96fb2b6.zip llvm-5ab6ee75994d645725264e757d67bbb1c96fb2b6.tar.gz llvm-5ab6ee75994d645725264e757d67bbb1c96fb2b6.tar.bz2 |
Fix a variety of bugs with nil-receiver checks when targeting
non-Darwin ObjC runtimes:
- Use the same logic the Darwin runtime does for inferring that a
receiver is non-null and therefore doesn't require null checks.
Previously we weren't skipping these for non-super dispatch.
- Emit a null check when there's a consumed parameter so that we can
destroy the argument if the call doesn't happen. This mostly
involves extracting some common logic from the Darwin-runtime code.
- Generate a zero aggregate by zeroing the same memory that was used
in the method call instead of zeroing separate memory and then
merging them with a phi. This uses less memory and avoids unnecessary
copies.
- Emit zero initialization, and generate zero values in phis, using
the proper zero-value routines instead of assuming that the zero
value of the result type has a bitwise-zero representation.
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions