Set loc earlier in CheckSingleInitializer to avoid emitting a 
diagnostic without a location.  This produces:

simpleTest.c:2:18: error: initializer element is not constant
int *myPointer = &(myArray[2]);
                 ^~~~~~~~~~~~~

instead of:

error: initializer element is not constant



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44375 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 8ecbd7c..5bd03d0 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -359,7 +359,7 @@
 
 bool Sema::CheckSingleInitializer(Expr *&Init, bool isStatic, 
                                   QualType DeclType) {
-  SourceLocation loc;
+  SourceLocation loc = Init->getLocStart();
   
   // FIXME: Remove the isReferenceType check and handle assignment
   // to a reference.
@@ -370,7 +370,6 @@
   }
   
   AssignmentCheckResult result;
-  loc = Init->getLocStart();
   // Get the type before calling CheckSingleAssignmentConstraints(), since
   // it can promote the expression.
   QualType rhsType = Init->getType();