This is an archive of the discontinued LLVM Phabricator instance.

SwiftAsync: use runtime-provided flag for extended frame if back-deploying
ClosedPublic

Authored by t.p.northover on Sep 3 2021, 2:50 AM.

Details

Summary

When back-deploying Swift async code we can't always toggle the flag showing an extended frame is present because it will confuse unwinders on systems released before this feature. So in cases where the code might run there, we or in a mask provided by the runtime (as an absolute symbol) telling us whether the unwinders can cope.

When deploying only for newer OSs, we can still hard-code the bit-set for greater efficiency.

Diff Detail