GorNishanov added inline comments.

================
Comment at: lib/CodeGen/CGCoroutine.cpp:225
+  void Emit(CodeGenFunction &CGF, Flags) override {
+    CGF.EmitStmt(Deallocate);
+  }
----------------
rnk wrote:
> GorNishanov wrote:
> > rnk wrote:
> > > This will be called twice: once for a normal exit and once for 
> > > exceptional exit. In general, double emitting a `Stmt*` is not safe, 
> > > since it might contain a VarDecl or a LabelDecl, but this usage is safe 
> > > because `SubStmtBuilder::makeNewAndDeleteExpr()` builds two calls that 
> > > can't declare anything. That is *definitely* worth a comment. :)
> > Thank you very much for the review!
> > Would switching the type of Deallocate from Stmt* to Expr* address this 
> > concern? 
> Not really, because gnu statement exprs mean Exprs can contain Decls as well. 
> =(
Ahh. Okay, comment it is.


https://reviews.llvm.org/D31460



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to