diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-03-08 16:40:19 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-03-08 16:40:19 +0000 |
commit | c2350e553b853ad00914faf23fa731e5fc4a8a5c (patch) | |
tree | b6a23f0ab6bac619e1343ee290093c2733afc129 /lib/Frontend | |
parent | 4bc1cb6aa635a5bf8fae99bf69c56c724c1e786c (diff) |
Extend ObjCMessageExpr for class method sends with the source location
of the class name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97943 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/PCHReaderStmt.cpp | 5 | ||||
-rw-r--r-- | lib/Frontend/PCHWriterStmt.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/Frontend/PCHReaderStmt.cpp b/lib/Frontend/PCHReaderStmt.cpp index d123694d69..7b94805d39 100644 --- a/lib/Frontend/PCHReaderStmt.cpp +++ b/lib/Frontend/PCHReaderStmt.cpp @@ -792,8 +792,9 @@ unsigned PCHStmtReader::VisitObjCMessageExpr(ObjCMessageExpr *E) { cast_or_null<Expr>(StmtStack[StmtStack.size() - E->getNumArgs() - 1])); if (!E->getReceiver()) { ObjCMessageExpr::ClassInfo CI; - CI.first = cast_or_null<ObjCInterfaceDecl>(Reader.GetDecl(Record[Idx++])); - CI.second = Reader.GetIdentifierInfo(Record, Idx); + CI.Decl = cast_or_null<ObjCInterfaceDecl>(Reader.GetDecl(Record[Idx++])); + CI.Name = Reader.GetIdentifierInfo(Record, Idx); + CI.Loc = SourceLocation::getFromRawEncoding(Record[Idx++]); E->setClassInfo(CI); } diff --git a/lib/Frontend/PCHWriterStmt.cpp b/lib/Frontend/PCHWriterStmt.cpp index a8cc9d6f45..9a5417ca61 100644 --- a/lib/Frontend/PCHWriterStmt.cpp +++ b/lib/Frontend/PCHWriterStmt.cpp @@ -720,8 +720,9 @@ void PCHStmtWriter::VisitObjCMessageExpr(ObjCMessageExpr *E) { if (!E->getReceiver()) { ObjCMessageExpr::ClassInfo CI = E->getClassInfo(); - Writer.AddDeclRef(CI.first, Record); - Writer.AddIdentifierRef(CI.second, Record); + Writer.AddDeclRef(CI.Decl, Record); + Writer.AddIdentifierRef(CI.Name, Record); + Writer.AddSourceLocation(CI.Loc, Record); } for (CallExpr::arg_iterator Arg = E->arg_begin(), ArgEnd = E->arg_end(); |