diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-05-09 06:03:39 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-05-09 06:03:39 +0000 | 
| commit | 13a5ecc6ff941c3056f2cf6c86aa2b07c6164d89 (patch) | |
| tree | dbcafb74d44252231baccd12e7a577eec4e86e4f /clang/lib/Frontend/PCHWriterStmt.cpp | |
| parent | 2760216c89acf3786ce712a5815b9cbf376ca970 (diff) | |
| download | bcm5719-llvm-13a5ecc6ff941c3056f2cf6c86aa2b07c6164d89.tar.gz bcm5719-llvm-13a5ecc6ff941c3056f2cf6c86aa2b07c6164d89.zip | |
pch'ify typeid.
llvm-svn: 103374
Diffstat (limited to 'clang/lib/Frontend/PCHWriterStmt.cpp')
| -rw-r--r-- | clang/lib/Frontend/PCHWriterStmt.cpp | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/clang/lib/Frontend/PCHWriterStmt.cpp b/clang/lib/Frontend/PCHWriterStmt.cpp index 3c2022ea998..1e272c3c66f 100644 --- a/clang/lib/Frontend/PCHWriterStmt.cpp +++ b/clang/lib/Frontend/PCHWriterStmt.cpp @@ -122,6 +122,7 @@ namespace {      void VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E);      void VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E);      void VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E); +    void VisitCXXTypeidExpr(CXXTypeidExpr *E);    };  } @@ -911,6 +912,18 @@ void PCHStmtWriter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E) {    Code = pch::EXPR_CXX_NULL_PTR_LITERAL;  } +void PCHStmtWriter::VisitCXXTypeidExpr(CXXTypeidExpr *E) { +  VisitExpr(E); +  Writer.AddSourceRange(E->getSourceRange(), Record); +  if (E->isTypeOperand()) { +    Writer.AddTypeSourceInfo(E->getTypeOperandSourceInfo(), Record); +    Code = pch::EXPR_CXX_TYPEID_TYPE; +  } else { +    Writer.WriteSubStmt(E->getExprOperand()); +    Code = pch::EXPR_CXX_TYPEID_EXPR; +  } +} +  //===----------------------------------------------------------------------===//  // PCHWriter Implementation  //===----------------------------------------------------------------------===// | 

