GorNishanov added inline comments.
================
Comment at: lib/CodeGen/CGCoroutine.cpp:225
+ void Emit(CodeGenFunction &CGF, Flags) override {
+ CGF.EmitStmt(Deallocate);
+ }
----------------
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?
https://reviews.llvm.org/D31460
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits