Page MenuHomePhabricator

[ObjCARC] Add funclet token to ARC marker
ClosedPublic

Authored by smeenai on Mar 19 2018, 12:01 PM.

Details

Summary

The inline assembly generated for the ARC autorelease elision marker
must have a funclet token if it's emitted inside a funclet, otherwise
the inline assembly (and all subsequent code in the funclet) will be
marked unreachable by WinEHPrepare.

Note that this only applies for the non-O0 case, since at O0, clang
emits the autorelease elision marker itself rather than deferring to the
backend. The fix for clang is handled in a separate change.

Diff Detail

Event Timeline

smeenai created this revision.Mar 19 2018, 12:01 PM

LGTM, I'd give @majnemer a day or so before committing.

This revision is now accepted and ready to land.Mar 20 2018, 1:40 PM
This revision was automatically updated to reflect the committed changes.