[PATCH] D89903: [CodeGen] Crash instead of generating broken code with self-capturing __block var
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 21 16:01:30 PDT 2020
rjmccall added a comment.
We do not actually support allocation failure for a lot of things around blocks. I don't think the copy-helper functions even have a way to propagate out a failure in copying a field. I have never seen any code in the wild that would handle `Block_copy` returning a null pointer. Effectively it is assumed to not happen.
It seems somewhat unlikely to me that anyone would actually write code like your example without copying the block and potentially triggering the `__block` variable to be moved to the heap, which is why I think pre-moving the variable might be acceptable.
With all that said, I agree that crashing and/or just not drilling into the variable is not acceptable.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89903/new/
https://reviews.llvm.org/D89903
More information about the cfe-commits
mailing list