[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

Richard Smith via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun May 28 12:44:38 PDT 2017

rsmith added inline comments.

Comment at: include/clang/Basic/DiagnosticSemaKinds.td:8977-8980
+  "the return type of 'await_suspend' is required to be 'void' or 'bool' (have %0)"
+def note_await_ready_no_bool_conversion : Note<
+  "the return type of 'await_ready' is required to be contextually convertible to 'bool'"
I would drop the leading 'the' from both of these diagnostics for consistency with our normal terse sentence fragment style.

Comment at: lib/Sema/SemaCoroutine.cpp:393
+    //   - await-suspend is the expression e.await_suspend(h), which shall be
+    //     a prvalue of type void or bool.
+    QualType RetType = AwaitSuspend->getType();
It looks like you're not checking the 'prvalue' part of this.


More information about the cfe-commits mailing list