diff options
author | Chris Lattner <sabre@nondot.org> | 2008-01-30 05:01:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-01-30 05:01:46 +0000 |
commit | db6ed1786bf460e1143f67d14bf2d71ad9856f81 (patch) | |
tree | 7c9903e9ae54b6fcc486c495b72497f5f483e872 /AST/Stmt.cpp | |
parent | 5193b8a3e57c4f696161aeddfe8227c294c0a7fe (diff) |
move some constructors out of line and fix indentation in ObjCAtThrowStmt::getSourceRange.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46547 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'AST/Stmt.cpp')
-rw-r--r-- | AST/Stmt.cpp | 56 |
1 files changed, 43 insertions, 13 deletions
diff --git a/AST/Stmt.cpp b/AST/Stmt.cpp index 4d1be5539d..fd72481fee 100644 --- a/AST/Stmt.cpp +++ b/AST/Stmt.cpp @@ -111,20 +111,17 @@ bool Stmt::hasImplicitControlFlow() const { } } -AsmStmt::AsmStmt(SourceLocation asmloc, - bool isvolatile, - unsigned numoutputs, - unsigned numinputs, - std::string *names, - StringLiteral **constraints, - Expr **exprs, - StringLiteral *asmstr, - unsigned numclobbers, - StringLiteral **clobbers, - SourceLocation rparenloc) +//===----------------------------------------------------------------------===// +// Constructors +//===----------------------------------------------------------------------===// + +AsmStmt::AsmStmt(SourceLocation asmloc, bool isvolatile, + unsigned numoutputs, unsigned numinputs, + std::string *names, StringLiteral **constraints, + Expr **exprs, StringLiteral *asmstr, unsigned numclobbers, + StringLiteral **clobbers, SourceLocation rparenloc) : Stmt(AsmStmtClass), AsmLoc(asmloc), RParenLoc(rparenloc), AsmStr(asmstr) - , IsVolatile(isvolatile), NumOutputs(numoutputs), NumInputs(numinputs) -{ + , IsVolatile(isvolatile), NumOutputs(numoutputs), NumInputs(numinputs) { for (unsigned i = 0, e = numinputs + numoutputs; i != e; i++) { Names.push_back(names[i]); Exprs.push_back(exprs[i]); @@ -135,6 +132,39 @@ AsmStmt::AsmStmt(SourceLocation asmloc, Clobbers.push_back(clobbers[i]); } +ObjCForCollectionStmt::ObjCForCollectionStmt(Stmt *Elem, Expr *Collect, + Stmt *Body, SourceLocation FCL, + SourceLocation RPL) +: Stmt(ObjCForCollectionStmtClass) { + SubExprs[ELEM] = Elem; + SubExprs[COLLECTION] = reinterpret_cast<Stmt*>(Collect); + SubExprs[BODY] = Body; + ForLoc = FCL; + RParenLoc = RPL; +} + + +ObjCAtCatchStmt::ObjCAtCatchStmt(SourceLocation atCatchLoc, + SourceLocation rparenloc, + Stmt *catchVarStmtDecl, Stmt *atCatchStmt, + Stmt *atCatchList) +: Stmt(ObjCAtCatchStmtClass) { + SubExprs[SELECTOR] = catchVarStmtDecl; + SubExprs[BODY] = atCatchStmt; + if (!atCatchList) + NextAtCatchStmt = NULL; + else { + ObjCAtCatchStmt *AtCatchList = + static_cast<ObjCAtCatchStmt*>(atCatchList); + while (AtCatchList->NextAtCatchStmt) + AtCatchList = AtCatchList->NextAtCatchStmt; + AtCatchList->NextAtCatchStmt = this; + } + AtCatchLoc = atCatchLoc; + RParenLoc = rparenloc; +} + + //===----------------------------------------------------------------------===// // Child Iterators for iterating over subexpressions/substatements //===----------------------------------------------------------------------===// |