}
// 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
}
// 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
}
}
ConsumeToken(); // consume ';'
- return Owned(Actions.ActOnObjCAtThrowStmt(atLoc, Res.release()));
+ return Actions.ActOnObjCAtThrowStmt(atLoc, move_convert(Res));
}
/// objc-synchronized-statement:
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:
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";
if (FinallyBody.isInvalid())
FinallyBody = Actions.ActOnNullStmt(Tok.getLocation());
FinallyStmt = Actions.ActOnObjCAtFinallyStmt(AtCatchFinallyLoc,
- FinallyBody.release());
+ move_convert(FinallyBody));
catch_or_finally_seen = true;
break;
}
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 '}'
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,
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