[cfe-commits] Handle ExprWithCleanups when creating goto scopes
Douglas Gregor
dgregor at apple.com
Fri Oct 26 10:18:15 PDT 2012
On Oct 24, 2012, at 2:11 PM, Rafael EspĂndola <rafael.espindola at gmail.com> wrote:
> A revised set of patches that keeps SubobjectAdjustment is attached.
First four patches look good, although we need some documentation on those helper functions.
The fifth patch is the interesting one. Just one comment here:
+ for (;;) {
+ const MaterializeTemporaryExpr *M = NULL;
+ Init = Init->findMaterializedTemporary(M);
- if (inDiagToUse)
- InDiag = inDiagToUse;
+ const ExprWithCleanups *EWC = dyn_cast<ExprWithCleanups>(Init);
+ if (!EWC)
+ break;
+ Init = EWC->getSubExpr();
+ }
The loop is unnecessary; there should only be one ExprWithCleanups at the top level.
Otherwise, LGTM. Thanks!
- Doug
> Thanks,
> Rafael
> <0001-delay-codegen-by-not-putting-a-llvm-Value-in-Subobje.patch><0002-factor-code-into-skipRValueSubobjectAdjustments.patch><0003-factor-code-into-findMaterializedTemporary.patch><0004-move-helper-functions.patch><0005-fix-it.patch>
More information about the cfe-commits
mailing list