[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 2 16:43:02 PDT 2017


rsmith added inline comments.


================
Comment at: lib/Sema/SemaCoroutine.cpp:1285
+      // We needed to check it, but we don't need to generate code for it.
+      if (!paramDecl->getIdentifier())
+        continue;
----------------
EricWF wrote:
> @rsmith Is there a better way to check if the move would be valid for unnamed parameters without building up these expressions?
We could wire through a flag to tell `AddInitializerToDecl` to build the `InitializationSequence` but not `Perform` it, but I don't think it's worth the effort. In fact, I'd prefer that we store the copy statement in the AST regardless, and make the choice to elide the copy from within `CodeGen`. (Sema shouldn't be dropping parts of the AST just because CodeGen doesn't need them; for example, a tool that wants to identify all potential callers of the move constructor should be able to find this call.)

I think we should also disable elision of parameter copies under `-fno-elide-constructors`.


https://reviews.llvm.org/D33797





More information about the cfe-commits mailing list