change the StringLiteral AST node to track all of the SourceLocations of 
the various PPTokens that are pasted together to make it.  In the course
of working on this, I discovered ParseObjCStringLiteral which needs some
work.  I'll tackle it next.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64892 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/StmtSerialization.cpp b/lib/AST/StmtSerialization.cpp
index 22ce818..074969e 100644
--- a/lib/AST/StmtSerialization.cpp
+++ b/lib/AST/StmtSerialization.cpp
@@ -955,8 +955,7 @@
 
 void StringLiteral::EmitImpl(Serializer& S) const {
   S.Emit(getType());
-  S.Emit(firstTokLoc);
-  S.Emit(lastTokLoc);
+  assert(0 && "Unimpl loc serialization");
   S.EmitBool(isWide());
   S.Emit(getByteLength());
 
@@ -966,13 +965,14 @@
 
 StringLiteral* StringLiteral::CreateImpl(Deserializer& D, ASTContext& C) {
   QualType t = QualType::ReadVal(D);
-  SourceLocation firstTokLoc = SourceLocation::ReadVal(D);
-  SourceLocation lastTokLoc = SourceLocation::ReadVal(D);
+  assert(0 && "Unimpl loc serialization");
+  //SourceLocation firstTokLoc = SourceLocation::ReadVal(D);
+  //SourceLocation lastTokLoc = SourceLocation::ReadVal(D);
   bool isWide = D.ReadBool();
   unsigned ByteLength = D.ReadInt();
   
   StringLiteral* sl = new (C, llvm::alignof<StringLiteral>())
-    StringLiteral(C, NULL, 0, isWide, t, firstTokLoc, lastTokLoc);
+    StringLiteral(C, NULL, 0, isWide, t, SourceLocation());
 
   char* StrData = new (C, llvm::alignof<char>()) char[ByteLength];
   for (unsigned i = 0; i < ByteLength; ++i)