[PATCH] D15781: [compiler-rt] Add support for ARM EHABI to gcc_personality_v0.

Logan Chien via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 4 07:12:19 PST 2016


logan added a comment.

Sorry for the late reply.  I spent sometime to setup the testing environment.

In http://reviews.llvm.org/D15781#317738, @compnerd wrote:

> I don't think that anyone has shown that the current implementation does not work on ARM.  I recall using the current implementation during testing on ARMv7.  I may be mistaken, so we should double check that.


>From my independent experiment, I can confirm the crash as well.  I have created a bug report and uploaded the test case to:
http://llvm.org/PR26012

I guess `__attribute__((cleanup()))` was not tested earlier.

In http://reviews.llvm.org/D15781#317738, @compnerd wrote:

> The reason that I'm unhappy about changing the signature here is because this is not a generic routine, it is a language specific implementation.  The change actually breaks ABI.
>
> The reason that you are able to generate references in your example is due to the C specific exception handling.  It is similar to using C++ with exceptions and seeing references to __gxx_personality_v0.
>
> AFAIR, EHABI has no bearing on the language specific handling which is why it doesn't matter if this routine doesn't match its signature.


Although ARM EHABI does not specify the detail of other personality functions.  However, it does specify the interface and the protocol between the personality function and the unwinder.  Otherwise, the unwinder won't be able to communicate with the personality function.

IMO, @timonvo gave a good summary in http://reviews.llvm.org/D15781#318066 which I wish to write down before seeing his reply.


http://reviews.llvm.org/D15781





More information about the llvm-commits mailing list