[PATCH] D30809: [coroutines] Add codegen for await and yield expressions
David Majnemer via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Mar 11 15:51:52 PST 2017
majnemer added inline comments.
================
Comment at: lib/CodeGen/CGCoroutine.cpp:26
+enum class AwaitKind { Init, Normal, Yield, Final };
+char const *AwaitKindStr[] = {"init", "await", "yield", "final"};
+}
----------------
I'd move this into buildSuspendSuffixStr.
================
Comment at: lib/CodeGen/CGCoroutine.cpp:32
struct CGCoroData {
+ AwaitKind CurrentAwaitKind = AwaitKind::Init;
----------------
Shouldn't this struct be in an anonymous namespace?
================
Comment at: lib/CodeGen/CGCoroutine.cpp:86-88
+ switch (Kind) {
+ default:
+ break;
----------------
I'd just make this fully covered, it's just two more cases.
================
Comment at: lib/CodeGen/CGExprScalar.cpp:279-282
+ Value *VisitCoawaitExpr(CoawaitExpr* S) {
+ return CGF.EmitCoawaitExpr(*S);
+ }
+ Value *VisitCoyieldExpr(CoyieldExpr* S) {
----------------
Pointers should lean right.
================
Comment at: lib/CodeGen/CGExprScalar.cpp:285
+ }
+ Value *VisitUnaryCoawait (const UnaryOperator *E) {
+ return Visit(E->getSubExpr());
----------------
Formatting looks off.
https://reviews.llvm.org/D30809
More information about the cfe-commits
mailing list