[PATCH] D31646: [coroutines] Build GRO declaration and return GRO statement

Richard Smith via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 22 11:15:00 PDT 2017

rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.


Comment at: lib/Sema/AnalysisBasedWarnings.cpp:338
+  // In a coroutine, only co_return statements count as normal returns. Remember
+  // if we are processing the coroutine or not.
+  const bool IsCoroutine = isa<CoroutineBodyStmt>(AC.getBody());
the -> a

Comment at: lib/Sema/SemaCoroutine.cpp:1079-1083
+  // FIXME: ActOnReturnStmt expects a scope that is inside of the function, due
+  //   to CheckJumpOutOfSEHFinally(*this, ReturnLoc, *CurScope->getFnParent());
+  //   S.getCurScope()->getFnParent() == nullptr at ActOnFinishFunctionBody when
+  //   CoroutineBodyStmt is built. Figure it out and fix it.
+  //   Use BuildReturnStmt here to unbreak sanitized tests. (Gor:3/27/2017)
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.


More information about the cfe-commits mailing list