]> granicus.if.org Git - clang/commitdiff
Set loc earlier in CheckSingleInitializer to avoid emitting a
authorChris Lattner <sabre@nondot.org>
Tue, 27 Nov 2007 21:21:35 +0000 (21:21 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 27 Nov 2007 21:21:35 +0000 (21:21 +0000)
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

Sema/SemaDecl.cpp

index 8ecbd7cb525a5a9cf9caa9115c1ee58695165df4..5bd03d01282751c3bbec937ae2dab0b3b2e1cbf1 100644 (file)
@@ -359,7 +359,7 @@ Sema::DeclTy *Sema::ParsedFreeStandingDeclSpec(Scope *S, DeclSpec &DS) {
 
 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 @@ bool Sema::CheckSingleInitializer(Expr *&Init, bool isStatic,
   }
   
   AssignmentCheckResult result;
-  loc = Init->getLocStart();
   // Get the type before calling CheckSingleAssignmentConstraints(), since
   // it can promote the expression.
   QualType rhsType = Init->getType();