[cfe-commits] r71990 - in /cfe/trunk: include/clang/Parse/Action.h lib/Parse/ParseStmt.cpp lib/Sema/Sema.h lib/Sema/SemaStmt.cpp lib/Sema/SemaTemplateInstantiateStmt.cpp tools/clang-cc/PrintParserCallbacks.cpp

Anders Carlsson andersca at mac.com
Sun May 17 14:22:26 PDT 2009


Author: andersca
Date: Sun May 17 16:22:26 2009
New Revision: 71990

URL: http://llvm.org/viewvc/llvm-project?rev=71990&view=rev
Log:
Make ActOnWhileStmt take a FullExprArg for the condition expr.

Modified:
    cfe/trunk/include/clang/Parse/Action.h
    cfe/trunk/lib/Parse/ParseStmt.cpp
    cfe/trunk/lib/Sema/Sema.h
    cfe/trunk/lib/Sema/SemaStmt.cpp
    cfe/trunk/lib/Sema/SemaTemplateInstantiateStmt.cpp
    cfe/trunk/tools/clang-cc/PrintParserCallbacks.cpp

Modified: cfe/trunk/include/clang/Parse/Action.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/Action.h?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/include/clang/Parse/Action.h (original)
+++ cfe/trunk/include/clang/Parse/Action.h Sun May 17 16:22:26 2009
@@ -506,8 +506,8 @@
     return StmtEmpty();
   }
 
-  virtual OwningStmtResult ActOnWhileStmt(SourceLocation WhileLoc, ExprArg Cond,
-                                          StmtArg Body) {
+  virtual OwningStmtResult ActOnWhileStmt(SourceLocation WhileLoc, 
+                                          FullExprArg Cond, StmtArg Body) {
     return StmtEmpty();
   }
   virtual OwningStmtResult ActOnDoStmt(SourceLocation DoLoc, StmtArg Body,

Modified: cfe/trunk/lib/Parse/ParseStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseStmt.cpp?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseStmt.cpp (original)
+++ cfe/trunk/lib/Parse/ParseStmt.cpp Sun May 17 16:22:26 2009
@@ -777,7 +777,7 @@
   if (Cond.isInvalid() || Body.isInvalid())
     return StmtError();
 
-  return Actions.ActOnWhileStmt(WhileLoc, move(Cond), move(Body));
+  return Actions.ActOnWhileStmt(WhileLoc, Actions.FullExpr(Cond), move(Body));
 }
 
 /// ParseDoStatement

Modified: cfe/trunk/lib/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.h?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/Sema.h (original)
+++ cfe/trunk/lib/Sema/Sema.h Sun May 17 16:22:26 2009
@@ -1182,8 +1182,8 @@
   virtual OwningStmtResult ActOnStartOfSwitchStmt(ExprArg Cond);
   virtual OwningStmtResult ActOnFinishSwitchStmt(SourceLocation SwitchLoc,
                                                  StmtArg Switch, StmtArg Body);
-  virtual OwningStmtResult ActOnWhileStmt(SourceLocation WhileLoc, ExprArg Cond,
-                                          StmtArg Body);
+  virtual OwningStmtResult ActOnWhileStmt(SourceLocation WhileLoc, 
+                                          FullExprArg Cond, StmtArg Body);
   virtual OwningStmtResult ActOnDoStmt(SourceLocation DoLoc, StmtArg Body,
                                        SourceLocation WhileLoc, ExprArg Cond);
 

Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
+++ cfe/trunk/lib/Sema/SemaStmt.cpp Sun May 17 16:22:26 2009
@@ -542,13 +542,14 @@
 }
 
 Action::OwningStmtResult
-Sema::ActOnWhileStmt(SourceLocation WhileLoc, ExprArg Cond, StmtArg Body) {
-  Expr *condExpr = Cond.takeAs<Expr>();
+Sema::ActOnWhileStmt(SourceLocation WhileLoc, FullExprArg Cond, StmtArg Body) {
+  ExprArg CondArg(Cond.release());
+  Expr *condExpr = CondArg.takeAs<Expr>();
   assert(condExpr && "ActOnWhileStmt(): missing expression");
 
   if (!condExpr->isTypeDependent()) {
     DefaultFunctionArrayConversion(condExpr);
-    Cond = condExpr;
+    CondArg = condExpr;
     QualType condType = condExpr->getType();
     
     if (getLangOptions().CPlusPlus) {
@@ -560,7 +561,7 @@
                        << condType << condExpr->getSourceRange());
   }
 
-  Cond.release();
+  CondArg.release();
   return Owned(new (Context) WhileStmt(condExpr, Body.takeAs<Stmt>(), 
                                        WhileLoc));
 }

Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateStmt.cpp?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaTemplateInstantiateStmt.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplateInstantiateStmt.cpp Sun May 17 16:22:26 2009
@@ -267,7 +267,7 @@
   if (Body.isInvalid())
     return SemaRef.StmtError();
 
-  return SemaRef.ActOnWhileStmt(S->getWhileLoc(), move(Cond), move(Body));
+  return SemaRef.ActOnWhileStmt(S->getWhileLoc(), FullExpr(Cond), move(Body));
 }
 
 Sema::OwningStmtResult TemplateStmtInstantiator::VisitDoStmt(DoStmt *S) {

Modified: cfe/trunk/tools/clang-cc/PrintParserCallbacks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/PrintParserCallbacks.cpp?rev=71990&r1=71989&r2=71990&view=diff

==============================================================================
--- cfe/trunk/tools/clang-cc/PrintParserCallbacks.cpp (original)
+++ cfe/trunk/tools/clang-cc/PrintParserCallbacks.cpp Sun May 17 16:22:26 2009
@@ -317,7 +317,7 @@
     }
 
     virtual OwningStmtResult ActOnWhileStmt(SourceLocation WhileLoc,
-                                            ExprArg Cond, StmtArg Body) {
+                                            FullExprArg Cond, StmtArg Body) {
       llvm::cout << __FUNCTION__ << "\n";
       return StmtEmpty();
     }





More information about the cfe-commits mailing list