Move SourceRange protocol from Expr->Stmt.

Converted many of the statements over. Still a hanful left...



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41663 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaStmt.cpp b/Sema/SemaStmt.cpp
index bec7f89..1c26202 100644
--- a/Sema/SemaStmt.cpp
+++ b/Sema/SemaStmt.cpp
@@ -61,7 +61,6 @@
       Diag(D->getLocation(), diag::ext_mixed_decls_code);
     }
   }
-  
   // Warn about unused expressions in statements.
   for (unsigned i = 0; i != NumElts; ++i) {
     Expr *E = dyn_cast<Expr>(Elts[i]);
@@ -88,7 +87,7 @@
       Diag(E->getExprLoc(), diag::warn_unused_expr, E->getSourceRange());
   }
   
-  return new CompoundStmt(Elts, NumElts);
+  return new CompoundStmt(Elts, NumElts, L, R);
 }
 
 Action::StmtResult
@@ -119,7 +118,7 @@
     return SubStmt;
   }
 
-  CaseStmt *CS = new CaseStmt(LHSVal, RHSVal, SubStmt);
+  CaseStmt *CS = new CaseStmt(LHSVal, RHSVal, SubStmt, CaseLoc);
   SwitchStack.back()->addSwitchCase(CS);
   return CS;
 }
@@ -182,7 +181,7 @@
     return Diag(IfLoc, diag::err_typecheck_statement_requires_scalar,
              condType.getAsString(), condExpr->getSourceRange());
 
-  return new IfStmt(condExpr, (Stmt*)ThenVal, (Stmt*)ElseVal);
+  return new IfStmt(IfLoc, condExpr, (Stmt*)ThenVal, (Stmt*)ElseVal);
 }
 
 Action::StmtResult
@@ -445,7 +444,7 @@
     return Diag(WhileLoc, diag::err_typecheck_statement_requires_scalar,
              condType.getAsString(), condExpr->getSourceRange());
 
-  return new WhileStmt(condExpr, (Stmt*)Body);
+  return new WhileStmt(condExpr, (Stmt*)Body, WhileLoc);
 }
 
 Action::StmtResult
@@ -461,7 +460,7 @@
     return Diag(DoLoc, diag::err_typecheck_statement_requires_scalar,
              condType.getAsString(), condExpr->getSourceRange());
 
-  return new DoStmt((Stmt*)Body, condExpr);
+  return new DoStmt((Stmt*)Body, condExpr, DoLoc);
 }
 
 Action::StmtResult 
@@ -493,7 +492,7 @@
       return Diag(ForLoc, diag::err_typecheck_statement_requires_scalar,
                SecondType.getAsString(), Second->getSourceRange());
   }
-  return new ForStmt(First, Second, Third, Body);
+  return new ForStmt(First, Second, Third, Body, ForLoc);
 }