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)