[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