This is an archive of the discontinued LLVM Phabricator instance.

[Exception Handling] Unwind tables are required for all functions that have an EH personality.
ClosedPublic

Authored by stefanp on Aug 20 2018, 12:17 PM.

Diff Detail

Repository
rL LLVM

Event Timeline

stefanp created this revision.Aug 20 2018, 12:17 PM
rnk added a comment.Aug 20 2018, 1:11 PM

Needs a test, but it's the right idea. You should be able to do an x86_64 test and ppc64. I'm also surprised it doesn't require other test changes.

jsji added a subscriber: jsji.
stefanp updated this revision to Diff 162024.Aug 22 2018, 12:15 PM

Sorry about that. I should have added the test cases earlier.

rnk accepted this revision.Aug 23 2018, 10:53 AM

lgtm

This revision is now accepted and ready to land.Aug 23 2018, 10:53 AM
This revision was automatically updated to reflect the committed changes.
stefanp reopened this revision.Aug 24 2018, 11:00 AM
This revision is now accepted and ready to land.Aug 24 2018, 11:00 AM
This revision was automatically updated to reflect the committed changes.

Does this mean that we can remove that previously-discussed x86 logic in Clang?

I'm not 100% sure if we can remove the default option -funwind-tables for x86.
I know that using -funwind-tables prevents (or hides) this issue but it may be required for another reason that this fix does not cover. I don't actually know what the initial intention was when that default was added.
I think that someone on the x86 side would be a better judge of this.

I'm not 100% sure if we can remove the default option -funwind-tables for x86.
I know that using -funwind-tables prevents (or hides) this issue but it may be required for another reason that this fix does not cover. I don't actually know what the initial intention was when that default was added.
I think that someone on the x86 side would be a better judge of this.

@craig.topper , do you know?