diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-01-31 22:45:40 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-01-31 22:45:40 +0000 |
commit | 87d32809855c0e34b07809985627ccf84d3ab3d3 (patch) | |
tree | 393c47819d4f2012c19cb0a21ff8d9025c501c66 /clang/lib/Sema/TreeTransform.h | |
parent | a223401498fd0df90007710e9eef5560a80c637d (diff) | |
download | bcm5719-llvm-87d32809855c0e34b07809985627ccf84d3ab3d3.tar.gz bcm5719-llvm-87d32809855c0e34b07809985627ccf84d3ab3d3.zip |
A couple minor fixes to template instantiation for for-range loops.
llvm-svn: 149440
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index a6777ec5d8f..0c0bd57b7fb 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -5738,10 +5738,18 @@ TreeTransform<Derived>::TransformCXXForRangeStmt(CXXForRangeStmt *S) { ExprResult Cond = getDerived().TransformExpr(S->getCond()); if (Cond.isInvalid()) return StmtError(); + if (Cond.get()) + Cond = SemaRef.CheckBooleanCondition(Cond.take(), S->getColonLoc()); + if (Cond.isInvalid()) + return StmtError(); + if (Cond.get()) + Cond = SemaRef.MaybeCreateExprWithCleanups(Cond.take()); ExprResult Inc = getDerived().TransformExpr(S->getInc()); if (Inc.isInvalid()) return StmtError(); + if (Inc.get()) + Inc = SemaRef.MaybeCreateExprWithCleanups(Inc.take()); StmtResult LoopVar = getDerived().TransformStmt(S->getLoopVarStmt()); if (LoopVar.isInvalid()) |