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
diff --git a/AST/Stmt.cpp b/AST/Stmt.cpp
index 4d1be55..fd72481 100644
--- a/AST/Stmt.cpp
+++ b/AST/Stmt.cpp
@@ -111,20 +111,17 @@
   }
 }
 
-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 @@
     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
 //===----------------------------------------------------------------------===//