diff options
author | Steve Naroff <snaroff@apple.com> | 2009-04-25 14:04:28 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-04-25 14:04:28 +0000 |
commit | c4f0bbdb166fbc31ab2cf0f6ff573fde9fa307b3 (patch) | |
tree | c79ef4add882926f1ee04e3cddf73300dca4b98d /lib/Frontend/PCHWriter.cpp | |
parent | 87f0f8252d441474820c106a3c9afda13256daef (diff) |
Add PCH support for ObjCMessageExpr (needed to build Mail).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70044 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHWriter.cpp')
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp index 5a410b1cf8..f8c4a779fb 100644 --- a/lib/Frontend/PCHWriter.cpp +++ b/lib/Frontend/PCHWriter.cpp @@ -672,6 +672,7 @@ namespace { void VisitObjCEncodeExpr(ObjCEncodeExpr *E); void VisitObjCSelectorExpr(ObjCSelectorExpr *E); void VisitObjCProtocolExpr(ObjCProtocolExpr *E); + void VisitObjCMessageExpr(ObjCMessageExpr *E); }; } @@ -1198,6 +1199,21 @@ void PCHStmtWriter::VisitObjCProtocolExpr(ObjCProtocolExpr *E) { Code = pch::EXPR_OBJC_PROTOCOL_EXPR; } +void PCHStmtWriter::VisitObjCMessageExpr(ObjCMessageExpr *E) { + VisitExpr(E); + Record.push_back(E->getNumArgs()); + Writer.AddSourceLocation(E->getSourceRange().getBegin(), Record); + Writer.AddSourceLocation(E->getSourceRange().getEnd(), Record); + Writer.AddSelectorRef(E->getSelector(), Record); + Writer.AddDeclRef(E->getMethodDecl(), Record); // optional + // FIXME: deal with class messages. + Writer.WriteSubStmt(E->getReceiver()); + for (CallExpr::arg_iterator Arg = E->arg_begin(), ArgEnd = E->arg_end(); + Arg != ArgEnd; ++Arg) + Writer.WriteSubStmt(*Arg); + Code = pch::EXPR_OBJC_MESSAGE_EXPR; +} + //===----------------------------------------------------------------------===// // PCHWriter Implementation |