This is an archive of the discontinued LLVM Phabricator instance.

[Coroutines] Handle dependent promise types for final_suspend non-throw check
ClosedPublic

Authored by lxfind on Jun 22 2020, 3:07 PM.

Details

Summary

Check that the co_await promise.final_suspend() does not potentially throw again after we have resolved dependent types.
This takes care of the cases where promises types are templated.
Added test cases for this scenario and confirmed that the checks happen now.
Also run libcxx tests locally to make sure all tests pass.

Diff Detail

Event Timeline

lxfind created this revision.Jun 22 2020, 3:07 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 22 2020, 3:07 PM
lxfind updated this revision to Diff 272553.Jun 22 2020, 3:11 PM

Simplify tests

lxfind requested review of this revision.Jun 23 2020, 11:44 AM
lxfind edited the summary of this revision. (Show Details)
modocache accepted this revision.Jun 25 2020, 11:00 AM

Thanks, this looks good to me!

This revision is now accepted and ready to land.Jun 25 2020, 11:00 AM
This revision was automatically updated to reflect the committed changes.