-
Notifications
You must be signed in to change notification settings - Fork 176
Fix swift error throwing on non-darwin ARM platforms #55
Conversation
There was an issue but it’s been resolved by completely clearing out the build directory and restarting. This looks good to go. |
Yes, this looks right to me. |
Ideally Manman Ren would review this, but she's no longer working on this project. |
This patch should go into the main LLVM repository, though. |
@aschwaighofer Please review and help this land in LLVM. |
Thanks @rjmccall, @aschwaighofer, I think I have found someone to propose this patch to llvm - @modocache |
Awaiting review on llvm: https://reviews.llvm.org/D35835 |
@modocache @johnno1962 The change looks good but needs a test case. I have left a review at the llvm's review site. Thank you! |
@aschwaighofer , @rjmccall. I understand this patch has landed in llvm trunk if you want to cherry-pick it up. Thanks @modocache. |
Seems like you’ve picked this up. I’ll close the PR now - Thanks! |
A minor change to get Swift Error throwing to work on non-darwin ARM32 platforms (e.g. Android.) Without this change, code generated saves and restores ARM register r8 at the entry and returns of a function that throws. As r8 is used as a virtual return value for the object being thrown this gets overwritten by the restore and calling code is unable to catch the error. This was causing do/try/catch not to work on Android as it is an ARM32 platform that does not satisfy "STI.isTargetDarwin()"
Addresses SR-5438