]> granicus.if.org Git - clang/commitdiff
Convert ObjC statement actions to smart pointers.
authorSebastian Redl <sebastian.redl@getdesigned.at>
Sun, 18 Jan 2009 17:43:11 +0000 (17:43 +0000)
committerSebastian Redl <sebastian.redl@getdesigned.at>
Sun, 18 Jan 2009 17:43:11 +0000 (17:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62465 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/PrintParserCallbacks.cpp
include/clang/Parse/Action.h
lib/Parse/ParseObjc.cpp
lib/Sema/Sema.h
lib/Sema/SemaStmt.cpp

index aba91815b17c971efd84941df166324d2acc3f97..efde399fba9ceaf747d5685ceebac48eab5a34fc 100644 (file)
@@ -381,37 +381,38 @@ namespace {
     }
 
     // Objective-c statements
-    virtual StmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc, 
-                                            SourceLocation RParen, StmtTy *Parm, 
-                                            StmtTy *Body, StmtTy *CatchList) {
+    virtual OwningStmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc,
+                                                  SourceLocation RParen,
+                                                  StmtArg Parm, StmtArg Body,
+                                                  StmtArg CatchList) {
       llvm::cout << __FUNCTION__ << "\n";
-      return 0;
+      return StmtEmpty();
     }
-  
-    virtual StmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc, 
-                                              StmtTy *Body) {
+
+    virtual OwningStmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc,
+                                                    StmtArg Body) {
       llvm::cout << __FUNCTION__ << "\n";
-      return 0;
+      return StmtEmpty();
     }
-  
-    virtual StmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc, 
-                                          StmtTy *Try, 
-                                          StmtTy *Catch, StmtTy *Finally) {
+
+    virtual OwningStmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc,
+                                                StmtArg Try, StmtArg Catch,
+                                                StmtArg Finally) {
       llvm::cout << __FUNCTION__ << "\n";
-      return 0;
+      return StmtEmpty();
     }
-  
-    virtual StmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc, 
-                                            StmtTy *Throw) {
+
+    virtual OwningStmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc,
+                                                  ExprArg Throw) {
       llvm::cout << __FUNCTION__ << "\n";
-      return 0;
+      return StmtEmpty();
     }
-  
-    virtual StmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, 
-                                                   ExprTy *SynchExpr, 
-                                                   StmtTy *SynchBody) {
+
+    virtual OwningStmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc,
+                                                         ExprArg SynchExpr,
+                                                         StmtArg SynchBody) {
       llvm::cout << __FUNCTION__ << "\n";
-      return 0;
+      return StmtEmpty();
     }
 
     // C++ Statements
index 311c381a928bad7c7f6e42be8217fb3ed6acd767..51524eb75df77fc244a01d446bd35a4e39ff0c3c 100644 (file)
@@ -474,32 +474,33 @@ public:
   }
 
   // Objective-c statements
-  virtual StmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc, 
-                                          SourceLocation RParen, StmtTy *Parm, 
-                                          StmtTy *Body, StmtTy *CatchList) {
-    return 0;
+  virtual OwningStmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc,
+                                                SourceLocation RParen,
+                                                StmtArg Parm, StmtArg Body,
+                                                StmtArg CatchList) {
+    return StmtEmpty();
   }
-  
-  virtual StmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc, 
-                                            StmtTy *Body) {
-    return 0;
+
+  virtual OwningStmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc,
+                                                  StmtArg Body) {
+    return StmtEmpty();
   }
-  
-  virtual StmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc, 
-                                        StmtTy *Try, 
-                                        StmtTy *Catch, StmtTy *Finally) {
-    return 0;
+
+  virtual OwningStmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc,
+                                              StmtArg Try, StmtArg Catch,
+                                              StmtArg Finally) {
+    return StmtEmpty();
   }
-  
-  virtual StmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc, 
-                                          StmtTy *Throw) {
-    return 0;
+
+  virtual OwningStmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc,
+                                                ExprArg Throw) {
+    return StmtEmpty();
   }
-  
-  virtual StmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, 
-                                        ExprTy *SynchExpr, 
-                                        StmtTy *SynchBody) {
-    return 0;
+
+  virtual OwningStmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc,
+                                                       ExprArg SynchExpr,
+                                                       StmtArg SynchBody) {
+    return StmtEmpty();
   }
 
   // C++ Statements
index 96673f088b399ce5f816c86faff19cfcda49f462..ef0d4b201a6a1646faec39711d2c56e58fe26808 100644 (file)
@@ -1202,7 +1202,7 @@ Parser::OwningStmtResult Parser::ParseObjCThrowStmt(SourceLocation atLoc) {
     }
   }
   ConsumeToken(); // consume ';'
-  return Owned(Actions.ActOnObjCAtThrowStmt(atLoc, Res.release()));
+  return Actions.ActOnObjCAtThrowStmt(atLoc, move_convert(Res));
 }
 
 /// objc-synchronized-statement:
@@ -1239,8 +1239,8 @@ Parser::ParseObjCSynchronizedStmt(SourceLocation atLoc) {
   BodyScope.Exit();
   if (SynchBody.isInvalid())
     SynchBody = Actions.ActOnNullStmt(Tok.getLocation());
-  return Owned(Actions.ActOnObjCAtSynchronizedStmt(atLoc, Res.release(),
-                                                   SynchBody.release()));
+  return Actions.ActOnObjCAtSynchronizedStmt(atLoc, move_convert(Res),
+                                             move_convert(SynchBody));
 }
 
 ///  objc-try-catch-statement:
@@ -1313,8 +1313,8 @@ Parser::OwningStmtResult Parser::ParseObjCTryStmt(SourceLocation atLoc) {
         if (CatchBody.isInvalid())
           CatchBody = Actions.ActOnNullStmt(Tok.getLocation());
         CatchStmts = Actions.ActOnObjCAtCatchStmt(AtCatchFinallyLoc,
-          RParenLoc, FirstPart.release(), CatchBody.release(),
-          CatchStmts.release());
+          RParenLoc, move_convert(FirstPart), move_convert(CatchBody),
+          move_convert(CatchStmts));
       } else {
         Diag(AtCatchFinallyLoc, diag::err_expected_lparen_after)
           << "@catch clause";
@@ -1334,7 +1334,7 @@ Parser::OwningStmtResult Parser::ParseObjCTryStmt(SourceLocation atLoc) {
       if (FinallyBody.isInvalid())
         FinallyBody = Actions.ActOnNullStmt(Tok.getLocation());
       FinallyStmt = Actions.ActOnObjCAtFinallyStmt(AtCatchFinallyLoc,
-                                                   FinallyBody.release());
+                                                   move_convert(FinallyBody));
       catch_or_finally_seen = true;
       break;
     }
@@ -1343,9 +1343,9 @@ Parser::OwningStmtResult Parser::ParseObjCTryStmt(SourceLocation atLoc) {
     Diag(atLoc, diag::err_missing_catch_finally);
     return StmtError();
   }
-  return Owned(Actions.ActOnObjCAtTryStmt(atLoc, TryBody.release(),
-                                          CatchStmts.release(),
-                                          FinallyStmt.release()));
+  return Actions.ActOnObjCAtTryStmt(atLoc, move_convert(TryBody),
+                                    move_convert(CatchStmts),
+                                    move_convert(FinallyStmt));
 }
 
 ///   objc-method-def: objc-method-proto ';'[opt] '{' body '}'
index ef69ec24a791023a4187019891607c65b7166997..eff8550bd1d13479c13260fc25b2ecbe3b33e573 100644 (file)
@@ -912,23 +912,24 @@ public:
                                         ExprArg AsmString,
                                         MultiExprArg Clobbers,
                                         SourceLocation RParenLoc);
-  
-  virtual StmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc, 
-                                          SourceLocation RParen, StmtTy *Parm, 
-                                          StmtTy *Body, StmtTy *CatchList);
-  
-  virtual StmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc, 
-                                            StmtTy *Body);
-  
-  virtual StmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc, 
-                                        StmtTy *Try, 
-                                        StmtTy *Catch, StmtTy *Finally);
-  
-  virtual StmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc, 
-                                          StmtTy *Throw);
-  virtual StmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, 
-                                                 ExprTy *SynchExpr, 
-                                                 StmtTy *SynchBody);
+
+  virtual OwningStmtResult ActOnObjCAtCatchStmt(SourceLocation AtLoc,
+                                                SourceLocation RParen,
+                                                StmtArg Parm, StmtArg Body,
+                                                StmtArg CatchList);
+
+  virtual OwningStmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc,
+                                                  StmtArg Body);
+
+  virtual OwningStmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc,
+                                              StmtArg Try,
+                                              StmtArg Catch, StmtArg Finally);
+
+  virtual OwningStmtResult ActOnObjCAtThrowStmt(SourceLocation AtLoc,
+                                                ExprArg Throw);
+  virtual OwningStmtResult ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc,
+                                                       ExprArg SynchExpr,
+                                                       StmtArg SynchBody);
 
   virtual DeclTy *ActOnExceptionDeclarator(Scope *S, Declarator &D);
   virtual OwningStmtResult ActOnCXXCatchBlock(SourceLocation CatchLoc,
index 23f21c7a6a880295e1d28a831269fd4cf3814a25..8b72514239e5e4979b4f0b6586c40133b92701f3 100644 (file)
@@ -935,44 +935,42 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc,
                            Clobbers, RParenLoc));
 }
 
-Action::StmtResult
-Sema::ActOnObjCAtCatchStmt(SourceLocation AtLoc, 
-                           SourceLocation RParen, StmtTy *Parm, 
-                           StmtTy *Body, StmtTy *CatchList) {
-  ObjCAtCatchStmt *CS = new ObjCAtCatchStmt(AtLoc, RParen, 
-    static_cast<Stmt*>(Parm), static_cast<Stmt*>(Body), 
-    static_cast<Stmt*>(CatchList));
-  return CatchList ? CatchList : CS;
+Action::OwningStmtResult
+Sema::ActOnObjCAtCatchStmt(SourceLocation AtLoc,
+                           SourceLocation RParen, StmtArg Parm,
+                           StmtArg Body, StmtArg catchList) {
+  Stmt *CatchList = static_cast<Stmt*>(catchList.release());
+  ObjCAtCatchStmt *CS = new ObjCAtCatchStmt(AtLoc, RParen,
+    static_cast<Stmt*>(Parm.release()), static_cast<Stmt*>(Body.release()),
+    CatchList);
+  return Owned(CatchList ? CatchList : CS);
 }
 
-Action::StmtResult
-Sema::ActOnObjCAtFinallyStmt(SourceLocation AtLoc, StmtTy *Body) {
-  ObjCAtFinallyStmt *FS = new ObjCAtFinallyStmt(AtLoc, 
-                                                static_cast<Stmt*>(Body));
-  return FS;
+Action::OwningStmtResult
+Sema::ActOnObjCAtFinallyStmt(SourceLocation AtLoc, StmtArg Body) {
+  return Owned(new ObjCAtFinallyStmt(AtLoc,
+                                     static_cast<Stmt*>(Body.release())));
 }
 
-Action::StmtResult
-Sema::ActOnObjCAtTryStmt(SourceLocation AtLoc, 
-                         StmtTy *Try, StmtTy *Catch, StmtTy *Finally) {
-  ObjCAtTryStmt *TS = new ObjCAtTryStmt(AtLoc, static_cast<Stmt*>(Try), 
-                                        static_cast<Stmt*>(Catch), 
-                                        static_cast<Stmt*>(Finally));
-  return TS;
+Action::OwningStmtResult
+Sema::ActOnObjCAtTryStmt(SourceLocation AtLoc,
+                         StmtArg Try, StmtArg Catch, StmtArg Finally) {
+  return Owned(new ObjCAtTryStmt(AtLoc, static_cast<Stmt*>(Try.release()),
+                                        static_cast<Stmt*>(Catch.release()),
+                                        static_cast<Stmt*>(Finally.release())));
 }
 
-Action::StmtResult
-Sema::ActOnObjCAtThrowStmt(SourceLocation AtLoc, StmtTy *Throw) {
-  ObjCAtThrowStmt *TS = new ObjCAtThrowStmt(AtLoc, static_cast<Stmt*>(Throw));
-  return TS;
+Action::OwningStmtResult
+Sema::ActOnObjCAtThrowStmt(SourceLocation AtLoc, ExprArg Throw) {
+  return Owned(new ObjCAtThrowStmt(AtLoc, static_cast<Expr*>(Throw.release())));
 }
 
-Action::StmtResult
-Sema::ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, ExprTy *SynchExpr, 
-                                  StmtTy *SynchBody) {
-  ObjCAtSynchronizedStmt *SS = new ObjCAtSynchronizedStmt(AtLoc, 
-    static_cast<Stmt*>(SynchExpr), static_cast<Stmt*>(SynchBody));
-  return SS;
+Action::OwningStmtResult
+Sema::ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, ExprArg SynchExpr,
+                                  StmtArg SynchBody) {
+  return Owned(new ObjCAtSynchronizedStmt(AtLoc,
+                     static_cast<Stmt*>(SynchExpr.release()),
+                     static_cast<Stmt*>(SynchBody.release())));
 }
 
 /// ActOnCXXCatchBlock - Takes an exception declaration and a handler block