]> granicus.if.org Git - clang/commitdiff
Replace more release+static_cast with takeAs.
authorAnders Carlsson <andersca@mac.com>
Fri, 1 May 2009 19:49:17 +0000 (19:49 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 1 May 2009 19:49:17 +0000 (19:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70567 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExpr.cpp
lib/Sema/SemaInit.cpp
lib/Sema/SemaNamedCast.cpp
lib/Sema/SemaStmt.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaTemplateInstantiate.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp

index 5c0c33b298c567d783402eb2d2ad4abdf67b1fe9..8e54ef77b58faf392232a2cb5415d3a101ff774a 100644 (file)
@@ -719,8 +719,7 @@ Sema::ActOnDeclarationNameExpr(Scope *S, SourceLocation Loc,
           OwningExprResult SelfExpr = ActOnIdentifierExpr(S, Loc, II, false);
           return Owned(new (Context) 
                        ObjCIvarRefExpr(IV, IV->getType(), Loc, 
-                                       static_cast<Expr*>(SelfExpr.release()),
-                                       true, true));
+                                       SelfExpr.takeAs<Expr>(), true, true));
         }
       }
     }
@@ -1221,7 +1220,7 @@ Action::OwningExprResult Sema::ActOnNumericConstant(const Token &Tok) {
 
 Action::OwningExprResult Sema::ActOnParenExpr(SourceLocation L,
                                               SourceLocation R, ExprArg Val) {
-  Expr *E = (Expr *)Val.release();
+  Expr *E = Val.takeAs<Expr>();
   assert((E != 0) && "ActOnParenExpr() missing expr");
   return Owned(new (Context) ParenExpr(L, R, E));
 }
@@ -4423,7 +4422,7 @@ Action::OwningExprResult Sema::ActOnBinOp(Scope *S, SourceLocation TokLoc,
                                           tok::TokenKind Kind,
                                           ExprArg LHS, ExprArg RHS) {
   BinaryOperator::Opcode Opc = ConvertTokenKindToBinaryOpcode(Kind);
-  Expr *lhs = (Expr *)LHS.release(), *rhs = (Expr*)RHS.release();
+  Expr *lhs = LHS.takeAs<Expr>(), *rhs = RHS.takeAs<Expr>();
 
   assert((lhs != 0) && "ActOnBinOp(): missing left expression");
   assert((rhs != 0) && "ActOnBinOp(): missing right expression");
@@ -4926,7 +4925,7 @@ Sema::OwningExprResult Sema::ActOnBlockStmtExpr(SourceLocation CaretLoc,
     DiagnoseInvalidJumps(static_cast<CompoundStmt*>(body.get()));
   CurFunctionNeedsScopeChecking = BSI->SavedFunctionNeedsScopeChecking;
   
-  BSI->TheDecl->setBody(static_cast<CompoundStmt*>(body.release()));
+  BSI->TheDecl->setBody(body.takeAs<CompoundStmt>());
   return Owned(new (Context) BlockExpr(BSI->TheDecl, BlockTy,
                                        BSI->hasBlockDeclRefExprs));
 }
index a622ef3796f9bb4991fd2ced792bc76ca5b22605..36b0e3b1350611f78aaa423abbdbf2c8837e3340 100644 (file)
@@ -1691,8 +1691,7 @@ Sema::OwningExprResult Sema::ActOnDesignatedInitializer(Designation &Desig,
   DesignatedInitExpr *DIE
     = DesignatedInitExpr::Create(Context, &Designators[0], Designators.size(),
                                  &InitExpressions[0], InitExpressions.size(),
-                                 Loc, GNUSyntax, 
-                                 static_cast<Expr *>(Init.release()));
+                                 Loc, GNUSyntax, Init.takeAs<Expr>());
   return Owned(DIE);
 }
 
index 8c45fe627864ae8cf5b64cab5fdea772e6da6543..f5bef4a1f2d079adb6ee041e5b238d13c13484e5 100644 (file)
@@ -63,7 +63,7 @@ Sema::ActOnCXXNamedCast(SourceLocation OpLoc, tok::TokenKind Kind,
                         SourceLocation RAngleBracketLoc,
                         SourceLocation LParenLoc, ExprArg E,
                         SourceLocation RParenLoc) {
-  Expr *Ex = (Expr*)E.release();
+  Expr *Ex = E.takeAs<Expr>();
   QualType DestType = QualType::getFromOpaquePtr(Ty);
   SourceRange OpRange(OpLoc, RParenLoc);
   SourceRange DestRange(LAngleBracketLoc, RAngleBracketLoc);
index d7fd5f054d079125e75bdfe663aded010a6f3074..243b5695c393ce7ee6971d0596ceb305780337c1 100644 (file)
@@ -180,7 +180,7 @@ Action::OwningStmtResult
 Sema::ActOnIfStmt(SourceLocation IfLoc, ExprArg CondVal,
                   StmtArg ThenVal, SourceLocation ElseLoc,
                   StmtArg ElseVal) {
-  Expr *condExpr = (Expr *)CondVal.release();
+  Expr *condExpr = CondVal.takeAs<Expr>();
 
   assert(condExpr && "ActOnIfStmt(): missing expression");
 
@@ -196,7 +196,7 @@ Sema::ActOnIfStmt(SourceLocation IfLoc, ExprArg CondVal,
     return StmtError(Diag(IfLoc, diag::err_typecheck_statement_requires_scalar)
       << condType << condExpr->getSourceRange());
 
-  Stmt *thenStmt = (Stmt *)ThenVal.release();
+  Stmt *thenStmt = ThenVal.takeAs<Stmt>();
 
   // Warn if the if block has a null body without an else value.
   // this helps prevent bugs due to typos, such as
@@ -209,7 +209,7 @@ Sema::ActOnIfStmt(SourceLocation IfLoc, ExprArg CondVal,
 
   CondVal.release();
   return Owned(new (Context) IfStmt(IfLoc, condExpr, thenStmt,
-                                    (Stmt*)ElseVal.release()));
+                                    ElseVal.takeAs<Stmt>()));
 }
 
 Action::OwningStmtResult
@@ -324,7 +324,7 @@ static bool CmpCaseVals(const std::pair<llvm::APSInt, CaseStmt*>& lhs,
 Action::OwningStmtResult
 Sema::ActOnFinishSwitchStmt(SourceLocation SwitchLoc, StmtArg Switch,
                             StmtArg Body) {
-  Stmt *BodyStmt = (Stmt*)Body.release();
+  Stmt *BodyStmt = Body.takeAs<Stmt>();
 
   SwitchStmt *SS = getSwitchStack().back();
   assert(SS == (SwitchStmt*)Switch.get() && "switch stack missing push/pop!");
@@ -514,7 +514,7 @@ Sema::ActOnFinishSwitchStmt(SourceLocation SwitchLoc, StmtArg Switch,
 
 Action::OwningStmtResult
 Sema::ActOnWhileStmt(SourceLocation WhileLoc, ExprArg Cond, StmtArg Body) {
-  Expr *condExpr = (Expr *)Cond.release();
+  Expr *condExpr = Cond.takeAs<Expr>();
   assert(condExpr && "ActOnWhileStmt(): missing expression");
 
   DefaultFunctionArrayConversion(condExpr);
@@ -530,14 +530,14 @@ Sema::ActOnWhileStmt(SourceLocation WhileLoc, ExprArg Cond, StmtArg Body) {
       << condType << condExpr->getSourceRange());
 
   Cond.release();
-  return Owned(new (Context) WhileStmt(condExpr, (Stmt*)Body.release(),
+  return Owned(new (Context) WhileStmt(condExpr, Body.takeAs<Stmt>(), 
                                        WhileLoc));
 }
 
 Action::OwningStmtResult
 Sema::ActOnDoStmt(SourceLocation DoLoc, StmtArg Body,
                   SourceLocation WhileLoc, ExprArg Cond) {
-  Expr *condExpr = (Expr *)Cond.release();
+  Expr *condExpr = Cond.takeAs<Expr>();
   assert(condExpr && "ActOnDoStmt(): missing expression");
 
   DefaultFunctionArrayConversion(condExpr);
@@ -552,7 +552,7 @@ Sema::ActOnDoStmt(SourceLocation DoLoc, StmtArg Body,
       << condType << condExpr->getSourceRange());
 
   Cond.release();
-  return Owned(new (Context) DoStmt((Stmt*)Body.release(), condExpr, DoLoc));
+  return Owned(new (Context) DoStmt(Body.takeAs<Stmt>(), condExpr, DoLoc));
 }
 
 Action::OwningStmtResult
@@ -1069,7 +1069,7 @@ Sema::ActOnObjCAtCatchStmt(SourceLocation AtLoc,
   }
 
   ObjCAtCatchStmt *CS = new (Context) ObjCAtCatchStmt(AtLoc, RParen,
-    PVD, static_cast<Stmt*>(Body.release()), CatchList);
+    PVD, Body.takeAs<Stmt>(), CatchList);
   return Owned(CatchList ? CatchList : CS);
 }
 
@@ -1083,10 +1083,9 @@ Action::OwningStmtResult
 Sema::ActOnObjCAtTryStmt(SourceLocation AtLoc,
                          StmtArg Try, StmtArg Catch, StmtArg Finally) {
   CurFunctionNeedsScopeChecking = true;
-  return Owned(new (Context) ObjCAtTryStmt(AtLoc,
-                                        static_cast<Stmt*>(Try.release()),
-                                        static_cast<Stmt*>(Catch.release()),
-                                        static_cast<Stmt*>(Finally.release())));
+  return Owned(new (Context) ObjCAtTryStmt(AtLoc, Try.takeAs<Stmt>(),
+                                           Catch.takeAs<Stmt>(),
+                                           Finally.takeAs<Stmt>()));
 }
 
 Action::OwningStmtResult
@@ -1127,9 +1126,9 @@ Sema::ActOnObjCAtSynchronizedStmt(SourceLocation AtLoc, ExprArg SynchExpr,
                        << SyncExpr->getType() << SyncExpr->getSourceRange());
   }
   
-  return Owned(new (Context) ObjCAtSynchronizedStmt(AtLoc,
-                     static_cast<Stmt*>(SynchExpr.release()),
-                     static_cast<Stmt*>(SynchBody.release())));
+  return Owned(new (Context) ObjCAtSynchronizedStmt(AtLoc, 
+                                                    SynchExpr.takeAs<Stmt>(),
+                                                    SynchBody.takeAs<Stmt>()));
 }
 
 /// ActOnCXXCatchBlock - Takes an exception declaration and a handler block
@@ -1140,7 +1139,7 @@ Sema::ActOnCXXCatchBlock(SourceLocation CatchLoc, DeclPtrTy ExDecl,
   // There's nothing to test that ActOnExceptionDecl didn't already test.
   return Owned(new (Context) CXXCatchStmt(CatchLoc,
                                   cast_or_null<VarDecl>(ExDecl.getAs<Decl>()),
-                                  static_cast<Stmt*>(HandlerBlock.release())));
+                                          HandlerBlock.takeAs<Stmt>()));
 }
 
 /// ActOnCXXTryBlock - Takes a try compound-statement and a number of
index 6e6021ae948f2ea073d3a4fd3811b80058c15c2b..43713e11f18c6831872bfae6db57197af146f261 100644 (file)
@@ -302,7 +302,7 @@ void Sema::ActOnNonTypeTemplateParameterDefault(DeclPtrTy TemplateParamD,
     return;
   }
 
-  TemplateParm->setDefaultArgument(static_cast<Expr *>(DefaultE.release()));
+  TemplateParm->setDefaultArgument(DefaultE.takeAs<Expr>());
 }
 
 
index 137868291997d05d34e52194b8eec62952b51b9c..ac8f293a803199c92f457a4736cf23b0f9d5fe61 100644 (file)
@@ -303,7 +303,7 @@ InstantiateDependentSizedArrayType(const DependentSizedArrayType *T,
     return QualType();
   
   return SemaRef.BuildArrayType(ElementType, T->getSizeModifier(),
-                                (Expr *)InstantiatedArraySize.release(),
+                                InstantiatedArraySize.takeAs<Expr>(),
                                 T->getIndexTypeQualifier(), Loc, Entity);
 }
 
index d7e81127a75347a710b36862d6fc757288ef5ab2..62c717b6d3df94752b97c8e7f3110f5bde1aef2e 100644 (file)
@@ -171,7 +171,7 @@ Decl *TemplateDeclInstantiator::VisitFieldDecl(FieldDecl *D) {
       Invalid = true;
       BitWidth = 0;
     } else
-      BitWidth = (Expr *)InstantiatedBitWidth.release();
+      BitWidth = InstantiatedBitWidth.takeAs<Expr>();
   }
 
   FieldDecl *Field = SemaRef.CheckFieldDecl(D->getDeclName(), T,