This is an archive of the discontinued LLVM Phabricator instance.

[coroutines] Build GRO declaration and return GRO statement
ClosedPublic

Authored by GorNishanov on Apr 3 2017, 10:16 PM.

Details

Summary
  1. build declaration of the gro local variable that keeps the result of get_return_object.
  2. build return statement returning the gro variable
  3. emit them during CodeGen
  4. sema and CodeGen tests updated

Diff Detail

Repository
rL LLVM

Event Timeline

GorNishanov created this revision.Apr 3 2017, 10:16 PM

Gentle ping. When all outstanding CRs are committed we will get 90% of working corouitnes in Clang!!!!

barely audible ping for coroutines

Traditional weekly ping

Half-monthly ping

@rsmith barely audible ping

rsmith accepted this revision.May 22 2017, 11:14 AM

LGTM

lib/Sema/AnalysisBasedWarnings.cpp
338 ↗(On Diff #94005)

the -> a

lib/Sema/SemaCoroutine.cpp
1079–1083 ↗(On Diff #94005)

I'm not sure you need this FIXME; using BuildReturnStmt here instead of ActOnReturnStmt to skip the checks that we apply to parsed return statements but not instantiated return statements seems appropriate to me, so there's probably nothing to fix.

This revision is now accepted and ready to land.May 22 2017, 11:14 AM

Thank you very much for the review!

Merged with top of the trunk, implemented suggested changes, preparing to land

This revision was automatically updated to reflect the committed changes.
GorNishanov marked an inline comment as done.