This is an archive of the discontinued LLVM Phabricator instance.

[X86] Don't give catch objects a displacement of zero
AbandonedPublic

Authored by majnemer on Mar 1 2016, 10:48 PM.

Details

Reviewers
rnk
Summary

We need to make sure that catch objects don't get assigned a
displacement of zero by sorting other objects after them.

Otherwise, we will confuse the runtime into thinking there is no catch
object to initialize.

N.B. This doesn't work if there are no other non-catch objects! It was
believed that we could use the UnwindHelp object but it is a fixed
object, not a normal stack object. :/

Diff Detail

Event Timeline

majnemer updated this revision to Diff 49583.Mar 1 2016, 10:48 PM
majnemer retitled this revision from to [X86] Don't give catch objects a displacement of zero.
majnemer updated this object.
majnemer added a reviewer: rnk.
majnemer added a subscriber: llvm-commits.
rnk edited edge metadata.Mar 2 2016, 8:51 AM

We discussed a more general solution of reclassifying all catch objects as fixed stack objects and completely taking over the frame layout of those objects. This solves a separate problem with catch objects and stack realignment.

majnemer abandoned this revision.Mar 2 2016, 11:01 AM