ille 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.
Fair – although if that's the case, perhaps xnu should not be using blocks. I suppose failures of small allocations like this are rare enough that the issue hasn't come up in practice, and same with the null blocks under ARC. > 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. Also fair. I can implement this, but I do think there should be an associated warning flag. > With all that said, I agree that crashing and/or just not drilling into the > variable is not acceptable. The patch I submitted switches from not drilling into the variable to crashing. Are you saying I should submit a more thorough fix rather than trying to land this first? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D89903/new/ https://reviews.llvm.org/D89903 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits