This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Use dwarf exception handling on MinGW
ClosedPublic

Authored by mstorsjo on Nov 2 2017, 1:34 AM.

Details

Summary

This is the only change needed for enabling dwarf exceptions on MinGW, no further changes are needed in clang or in libunwind.

Diff Detail

Repository
rL LLVM

Event Timeline

mstorsjo created this revision.Nov 2 2017, 1:34 AM
compnerd requested changes to this revision.Nov 2 2017, 1:35 PM

What exactly is the test intending to test? If its that the CFI is generated, I think that the input is too complex. Something simpler like:

void f();
void g() { try { f(); } catch (...) { } }

should be sufficient.

This revision now requires changes to proceed.Nov 2 2017, 1:35 PM
mstorsjo updated this revision to Diff 121368.Nov 2 2017, 1:59 PM
mstorsjo edited edge metadata.
mstorsjo edited the summary of this revision. (Show Details)

Simplified the test as suggested.

The same goes here as for ARM as well - ideally we should probably use windows exception tables here as well, but on aarch64, there's even more things to do to get that working - while the dwarf version seems to work fine (at least when tested in wine) so far.

compnerd accepted this revision.Nov 2 2017, 2:34 PM
compnerd added inline comments.
test/CodeGen/AArch64/dwarf-cfi.ll
1–3 ↗(On Diff #121368)

The split over multiple lines is not really helpful (especially when copy/pasting to debug).

This revision is now accepted and ready to land.Nov 2 2017, 2:34 PM
This revision was automatically updated to reflect the committed changes.