aboutsummaryrefslogtreecommitdiff
path: root/AST/Stmt.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-01-30 05:01:46 +0000
committerChris Lattner <sabre@nondot.org>2008-01-30 05:01:46 +0000
commitdb6ed1786bf460e1143f67d14bf2d71ad9856f81 (patch)
tree7c9903e9ae54b6fcc486c495b72497f5f483e872 /AST/Stmt.cpp
parent5193b8a3e57c4f696161aeddfe8227c294c0a7fe (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.cpp56
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
//===----------------------------------------------------------------------===//