PR11002: Make sure we emit sentinel warnings with a valid source location.  (Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140658 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 25f1342..2b67b4d 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -252,10 +252,13 @@
     NullValue = "NULL";
   else
     NullValue = "(void*) 0";
-  
-  Diag(MissingNilLoc, diag::warn_missing_sentinel) 
-    << calleeType
-    << FixItHint::CreateInsertion(MissingNilLoc, ", " + NullValue);
+
+  if (MissingNilLoc.isInvalid())
+    Diag(Loc, diag::warn_missing_sentinel) << calleeType;
+  else
+    Diag(MissingNilLoc, diag::warn_missing_sentinel) 
+      << calleeType
+      << FixItHint::CreateInsertion(MissingNilLoc, ", " + NullValue);
   Diag(D->getLocation(), diag::note_sentinel_here) << calleeType;
 }